标签:test 运行 str 继承 nbsp 父类 向下转型 [] oda
package cn.taylor.demo;
class Base11{
public void method(){
System.out.println("Base11");
}
public void methodA(){
System.out.println("父类独有");
}
}
class Son extends Base11{
public void method(){
System.out.println("Son");
}
public void methodB(){
System.out.println("子类独有");
}
}
public class Test01 {
public static void main(String arg[]){
Base11 Base1101=new Son(); //向上转型
//编译看左边,运行看右边
Base1101.method(); //本来是调用父类的method方法的,但是被子类覆盖了,所以调用的是子类的method方法
Base1101.methodA(); //调用的是父类的methodA方法
//Base1101.methodB(); 这里编译通过不了,父类的引用无法访问子类独有的方法
Son son01=new Son();
son01.method(); //调用子类将父类覆盖的method方法
son01.methodA(); //调用继承下来的父类的methodA方法
son01.methodB(); //调用子类自身特有的方法
//Son son02=(Son)new Base11();
//向下转型,等同于 Base11 a=new Base11(),Son son02=(Son)a,这样编译时没有错的,但是运行会出错
/* Base11 a=new Base11();
Son son02=(Son)a;
son02.method();
son02.methodA();
son02.methodB();
*/
//很少用到向下转型
Base11 Base1102=new Son();
Son son03=(Son) Base1102;
son03.method();
son03.methodA();
son03.methodB();
}
}
结果:
Son
父类独有
Son
父类独有
子类独有
Son
父类独有
子类独有
标签:test 运行 str 继承 nbsp 父类 向下转型 [] oda
原文地址:http://www.cnblogs.com/itaylor/p/7794288.html