Example5_12.java
abstract class A { abstract int add(int x,int y); int sub(int x,int y) { return x-y; } } class B extends A { int add(int x,int y) { //子類必須重寫父類的add方法 return x+y; } } public class Example5_12 { public static void main(String args[]) { B b=new B(); int sum=b.add(30,20); //調用子類重寫的add方法 int sub=b.sub(30,20); //調用子類繼承的sub方法 System.out.println("sum="+sum); //輸出結果為sum=50 System.out.println("sum="+sub); //輸出結果為sum=10 A a; //抽象類聲明對象 a = b; //a是b的上轉型對象 sum=a.add(30,20); //調用子類重寫的方法 sub=a.sub(30,20); //調用子類繼承的方法 System.out.println("sum="+sum); //輸出結果為sum=50 System.out.println("sum="+sub); //輸出結果為sum=10 } }