楼上的,我就是把子类对象转换为父类对象啊.那么不是使用父类的方法吗? Son Son1 = new Son(); //父类目光看子类 ((Father)Son1).think();那么这句呢? 以下句子为什么不能运行呢?不是应该显示Out-Date的吗? Son Father2 = new Father(); //子类目光看父类 Father2.think();
比如 Son Son1 = new Son(); Father fa=(Father)Son1; Son so=(Son)fa;//这样是可以向下转型的 so.think(); 不过转来转去又转回来了,没多大意思呵呵
楼上的,我就是把子类对象转换为父类对象啊.那么不是使用父类的方法吗? Son Son1 = new Son(); //父类目光看子类 ((Father)Son1).think();是转成了父类对象,可是引用指向的还是子类对象,调用think()的时候覆盖了父类的。那么这句呢? 以下句子为什么不能运行呢?不是应该显示Out-Date的吗? Son Father2 = new Father(); //子类目光看父类 Father2.think();怎么可以用一个子类类型的引用直接指向它的父类对象呢?!一个类的引用只能指向这个类的对象或者它的子类的对象。
goaling(ling)第一个问题明白了,谢谢...但第二个问题有些糊涂: 按照你的意思是说-- 只能 Father Son1 = new Son();//只能用父类的目光来看子类. Son1.think();而不能 Son Father2 = new Father(); 不能以子类目光看父类. Father2.think(); 请问我的理解正确吗?
Son //子类目光看父类 Father2.think();很简单啊,老子不能做儿子,2楼的回答很清楚了Father2 = new Father(); 这句就是定义了一个Father2 的父类对象,可是不幸的是前面又多了个 son的子类类型,这样就不可以了
哪位可以详细的说下 up casting 和 down casting,我一直在这个地方晕/
谢谢楼主宝地
|
子上下不是很明确吗,晕什么
Object o = new String(); //up-casting
String s = (String)new Object(); //down-cating, 运行错
goaling
先把子类对象转成父类对象,再将父类对象转成子类对象,这样是不会出错的
是什么意思?
Son Son1 = new Son(); //父类目光看子类
((Father)Son1).think();那么这句呢?
以下句子为什么不能运行呢?不是应该显示Out-Date的吗?
Son Father2 = new Father(); //子类目光看父类
Father2.think();
Son Son1 = new Son();
Father fa=(Father)Son1;
Son so=(Son)fa;//这样是可以向下转型的
so.think();
不过转来转去又转回来了,没多大意思呵呵
Son Son1 = new Son(); //父类目光看子类
((Father)Son1).think();是转成了父类对象,可是引用指向的还是子类对象,调用think()的时候覆盖了父类的。那么这句呢?
以下句子为什么不能运行呢?不是应该显示Out-Date的吗?
Son Father2 = new Father(); //子类目光看父类
Father2.think();怎么可以用一个子类类型的引用直接指向它的父类对象呢?!一个类的引用只能指向这个类的对象或者它的子类的对象。
按照你的意思是说--
只能 Father Son1 = new Son();//只能用父类的目光来看子类.
Son1.think();而不能 Son Father2 = new Father(); 不能以子类目光看父类.
Father2.think(); 请问我的理解正确吗?
Father2.think();很简单啊,老子不能做儿子,2楼的回答很清楚了Father2 = new Father(); 这句就是定义了一个Father2 的父类对象,可是不幸的是前面又多了个
son的子类类型,这样就不可以了