Java中父类强制转换成子类的原则
来源:互联网 发布:性感淘宝买家秀的网店 编辑:程序博客网 时间:2024/04/29 04:13
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。
例:
public class Test {
public static void main(String[] args) {
Person person = new Boy();
Boy boy = (Boy) person;
boy.eat();
}
}
class Person {
public void eat() {
System.out.println("The people were eating");
}
}
class Boy extends Person {
public void eat() {
System.out.println("The boy were eating");
}
}
打印结果:The boy were eating
原因:当Boy实例化后将引用地址返回传给person,这时person引用实际指向的是Boy,所以将person转换成Boy能成功。
再定义一个类:
class Girl extends Person {
public void eat() {
System.out.println("The girl were eating");
}
}
main方法中添加:
Person p = new Girl();
Boy b = (Boy)p;
b.eat();
运行时提示:Girl cannot be cast to Boy(不能将女孩转换成男孩)
原因:当Girl实例化后将引用地址返回传给p,这时p引用实际指向的是Girl,将p转换成Boy也就是说将Girl转换成Boy,肯定不能成功。
上面的例子换句话来说,男孩和女孩都是人这肯定是对的,但你要说女孩是男孩肯定是不对的。
- Java中父类强制转换成子类的原则
- Java中父类强制转换成子类的原则
- Java中父类强制转换成子类的原则
- java中父类强制转换成子类的错觉
- Java中父类强制转换为子类的可能
- java 父类强制转换为子类
- java搜索 里 可以把一个父类强制转换成一个子类 不能把一个子类强制转换成一个父类? 对吗?
- 在Java当中父类和子类之间的强制转换
- 关于java接口、父类子类之间调用和强制转换的关系
- java中父类与子类的转换问题
- 父类指针向子类指针的强制类型转换
- 父类指针向子类指针的强制类型转换
- C#父类强制转换成子类,子类隐式转换成父类
- C#父类强制转换成子类,子类隐式转换成父类
- 使用dynamic_cast强制将基类指针转换成子类指针
- java中父类转换为子类
- java的强制类型转换
- java类型的强制转换
- 【GPU开发笔记】一:CUDA初探——环境配置
- 算法实质【Matrix67】
- vim 常用
- Linux系统OOM killer机制详解
- 那些VisualStudio隐藏的调试功能
- Java中父类强制转换成子类的原则
- 一位Acmer过来人的经验
- 《C++编程规范》读书笔记(中)
- 不使用字符串库函数实现字符串复制的几种方法
- C++虚函数问题
- Ural 1028. Stars
- Java的冒泡排序和二分法查找
- hibernate与spring的jdbc,dao的区别
- 2013多校联合4 1001 Palindrome subsequence(hdu 4632)