简单理解一下向上转型与向下转型操作.
public class 转型 {
public static void main(String[] args) {
Father s=new Son();//向上转型.
s.age(); //向上转型能调用子类中覆写了父类中的方法.
s.t1(); //也可以调用父类中有而子类中没有的方法.
//但是向上转型不能调用子类中的新方法.
Son s1=(Son)s; //向下转型.
s1.age(); //向上转型能调用子类中覆写了父类中的方法.
s1.t1(); //也可以调用父类中有而子类中没有的方法.
s1.t2(); //还可以调用子类中的新方法(这与向上转型不同).
}
}
class Father{
public void age() {
System.out.println("父亲年龄22");
}
public void t1() {
System.out.println("父亲");
}
}
class Son extends Father{
public void age() {
System.out.println("儿子年龄11");
}
public void t2() {
System.out.println("儿子");
}
}