码迷,mamicode.com
首页 > 其他好文 > 详细

上下转型问题

时间:2017-11-06 19:03:19      阅读:154      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!