我们之所以可以实现向上转型,主要是因为两个类型之间是父子关系。比如在本例中,向上转型就等于说”猫是动物,狗是动物“,因为猫狗都是动物的子类,所以这个结论是确定无误的。 三. 向下转型 1. 概念 向下转型则反之,也就是一个已经向上转型的子类对象指向父类引用。向下转型后,可以调用子类类型中所有的成员。向下转...
1.1 向上转型 向上转型分为两种情况,接口的向上转型和继承的向上转型,向上转型是为多态服务的,在方法的入参带有对象引用时,向上转型可以少写重复代码。 (1)接口的向上转型 接口的向上转型,即声明一个接口变量,指向实现了该接口的类的实例。举例如下,定义一个接口Cat以及该接口的实现类BlueCat,在main函数里通过接口...
Person p = new Woman();//向上转型 //向下转型 Woman m = (Woman)p; p变量中实际存储的对象就是Woman类型,和强转的Woman类型一样 Person p4 = new ChineseWoman();//向上转型 //向下转型 Woman w4 = (Woman) p4; p4变量中实际存储的对象是ChineseWoman类型,强制的类型是Woman,ChineseWoman<Woman类型 ...
我们之所以可以实现向上转型,主要是因为两个类型之间是父子关系。比如在本例中,向上转型就等于说”猫是动物,狗是动物“,因为猫狗都是动物的子类,所以这个结论是确定无误的。 三. 向下转型 1. 概念 向下转型则反之,也就是一个已经向上转型的子类对象指向父类引用。向下转型后,可以调用子类类型中所有的成员。向下转...
向上转型和向下转型都可以在编译时进行 D. 向下转型总是安全的 相关知识点: 试题来源: 解析 A和 B。 答案: A 和 B。 解析:向上转型是指将子类对象转换为父类对象,向下转型是指将父类对象转换为子类对象。向上转型是安全的,而向下转型在运行时可能会失败,需要使用`instanceof`进行检查。反馈 收藏 ...
多态的转型分为向上转型与向下转型两种: 向上转型(调用父类公共的方法):当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。 使用格式: 1父类类型 变量名 =new子类类型();2如:Person p =newStudent(); 向下转型(调用子类的独有方法、类似于强转):一个已经向上转型的子类对象可以使...
Java基础一篇过(九)面向对象之多态【向上转型与向下转型】,一、多态的一些基本概念简单理解:简而言之就是同一个行为具有多个不同表现形式或形态的能力,例:比如有一个玻
向上转型:可以看出把Cat()的对象赋值给naimal时,不再有用getEyes()方法,此方法是Cat中的方法,而Animal类中无此方法。这说明animl对象发生了“瘦身”。向下转型:这里要注意一点,向下转型是你向上转型后才能执行的操作。所以把转型后的animal赋值给cat_s,此时却发现cat_s对象“增肥”了,不仅能访问Animal类...
这个说实话 没啥好演示的。因为我们前面举过的所有多态的例子,都属于向上转型。 请继续看向下转型,那...
以下这种就是直接赋值类型的向上转型,将子类对象的引用给到父类对象。然后再将这个对象作为参数传递进去,就可以根据不同引用调用不同的行为 public class Test1 { public static void eat(Animal animal) { animal.eat(); } public static void main(String[] args) { ...