java 父类可以调用子类方法?
今天看effective java 第14条,其中父类调用了子类的方法,以前学过C++。针对这个例子一直理解不了,希望高手解释下。。。
public class SuperTest {
public static void main(String[] args) {
Child c = new Child();
c.addAll();
}
}
class Parent{
public void add(){
System.out.println("A add...");
}
public void addAll(){
System.out.println("A add ALL...");
this.add();
}
}
class Child extends Parent{
@Override
public void add() {
// TODO Auto-generated method stub
System.out.println("B add...");
super.add();
}
@Override
public void addAll() {
// TODO Auto-generated method stub
System.out.println("B add ALL...");
super.addAll();
}
}
public class SuperTest {
public static void main(String[] args) {
Child c = new Child();
c.addAll();
}
}
class Parent{
public void add(){
System.out.println("A add...");
}
public void addAll(){
System.out.println("A add ALL...");
//加上下面这句话 你的世界就变的清晰了 肯定就明白了
System.out.println(this.getClass().getName()); // 打印出来Child 你难道还会不明白么?
this.add();
}
}
class Child extends Parent{
@Override
public void add() {
// TODO Auto-generated method stub
System.out.println("B add...");
super.add();
}
@Override
public void addAll() {
// TODO Auto-generated method stub
System.out.println("B add ALL...");
super.addAll();
}
}