public abstract class AA {
abstract void callme();
void metoo(){
System.out.println("Inside AA's metoo().");
}
}
public class BB extends AA {
void metoo(){
System.out.println("Inside BB's metoo().");
}
void callme(){
System.out.println("Inside BB's callme().");
}
}
public class AbstractTest {
public static void main(String[] args) {
AA aa = new BB();
aa.callme();
aa.metoo();
}
}
如果main方法中的 AA aa = new BB();換成BB aa = new BB();結果還是一樣的,
都是對BB類進行實例化,但是生成的對象aa前面的類名是干什麼用的,這裡為
什麼用的是AA,是不是AA是抽象類?
這就是多態的一個表現,AA 是個抽象類,你不能實例化(new A()),但是你可以實例化它的子類,然後A指向它即可。
這裡你當然也可以用B 啊,