十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

##关于Java中多态部分知识点##

##关于Java中多态部分知识点## 一、多态父类引用指向不同的子类对象调用同一个方法时表现出不同的行为这就叫多态。需要有向上转型的操作。例Animal父类 animal new Dog子类(小黄, 10);子类必须重写父类的该方法。必须有继承关系。二、向上转换场景2.1 直接赋值例Animal a new Dog(); // 父类引用指向子类对象a.eat(); // 调用 Dog 类重写的 eat 方法2.2 方法传参例public void feed(Animal a) { // 参数声明为父类类型a.eat();}// 调用时传不同子类feed(new Dog()); // 狗吃骨头feed(new Cat()); // 猫吃鱼2.3 方法返回例public Animal getAnimal(String type) {if (dog.equals(type)) {return new Dog(); // 返回子类对象但声明为父类} else if (cat.equals(type)) {return new Cat();}return null;}Animal a getAnimal(dog); // 实际拿到 Dog但用 Animal 接a.eat();2.4 优点与缺点优点代码实现更简单灵活。缺点不能调用到子类特有方法。三、向下转型3.1 父类类型给到子类例Dog dog(子类) (Dog) animal(父类);3.2 instanceof使用时加个判断if (animal instanceof Dog) {}instanceofanimal 是不是 Dog 的实例两侧的类必须有父子继承关系。3.3 缺点存在类型转换风险可能导致 ClassCastException 异常。
返回列表