程序示例:java
class Grap{ public Double getArea(){ return 0.0; } } class Circle extends Grap{ private Integer r; //半徑 Circle(Integer r) { this.r = r; } public Double getArea(){ return 3.14*r*r; } } class Equals extends Grap{ private Integer x; //長 private Integer y; //寬 Equals(Integer x,Integer y) { this.x = x; this.y = y; } public Double getArea(){ return x*y.doubleValue(); } } public class UnAbstract { public static void main(String[] args) { System.out.println(new Circle(10).getArea()); System.out.println(new Equals(10,10).getArea()); } }
程序示例運行結果:this
314.0 100.0
如何解決上述問題? 抽象!spa
抽象方法 抽象類code
程序示例:繼承
abstract class Grap{ abstract public Double getArea(); //抽象方法的類必定是抽象類 } class Circle extends Grap{ private Integer r; //半徑 Circle(Integer r) { this.r = r; } public Double getArea(){ return 3.14*r*r; } } // 抽象類的繼承類爲非抽象類時必須從新父類的抽象方法。 abstract class Equals extends Grap{ private Integer x; //長 private Integer y; //寬 Equals(Integer x,Integer y) { this.x = x; this.y = y; } } public class UnAbstract { public static void main(String[] args) { System.out.println(new Circle(10).getArea()); } }
程序示例運行結果:get
314.0