什么是类的上下转型,我擦,我听说这个词开始我也蒙逼,但是懵B你就不学吗 我就不信你基础有我差,废话不说,来跟我学下什么是 类的上下转型
比如说 有俩个类, 一个是动物类,一个是小狗类,那是不是就可以理解为狗是动物类呢,动物是小狗的一个父类,小狗肯定是父类的对象,但是父类就不一定是子类的对象,对吧,人家动物还有猫和大象呢。
所以说 小狗类转换成动物类的时候,就是向上转型,看一下代码是怎么转的哈~
向上转型
父类代码:
public class Person {
Person(String name){
System.out.println("你好我是:"+name);
}
}
子类代码
public class Student extends Person{
Student(String name) {
super(name);
// TODO Auto-generated constructor stub
}
}
主函数代码:
public class Dome {
public static void main(String[] args) {
Person zsw =new Student("zsw");//运行结果 你好我是:zsw
}
}
上面就是一个简单的代码例子,创建了一个父类的对象,由子类来进行实例化~
向下转型
也就是将父类的对象转换成子类的对象~
看下代码:
其实向下转型记住一个必要条件就是,先将父类的对象由子类进行实例化才可以
Person jack =new Dortor("jack");
Dortor dc= (Dortor)jack;
intanceof 关键字
语法
boolean result = child intanceof parents //如果child 是继承的parents 就返回 true,不是就返回false
值得一提的是 child是对象名 parents 是类名~, 如果来个没有任何继承关系的话,使用这个语法,会报错。