本文主要是介绍Java 面向对象进阶 11 多态的优势和弊端(黑马),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
优势:
代码:
public class test {public static void main(String[] args) {Animal a = new Dog();a.eat(); }
}
class Animal{public void eat(){System.out.println("动物再吃东西");}
}
class Dog extends Animal{@Overridepublic void eat(){System.out.println("狗吃骨头");}public void lookHome(){System.out.println("狗在看家");}
}
class Cat extends Animal{@Overridepublic void eat(){System.out.println("猫吃小鱼干");}public void catchMouse(){System.out.println("猫抓老鼠");}
}
运行结果为:
弊端:
修改方法:
转换分两种:
自动类型转换:
强制类型转换:
Java关键字instanceof可以用来检查对象是否是指定类的实例,或者是否是其子类或实现类的实例。语法:
object instanceof class其中,object是要检查的对象,class是要检查的类。当object是class的实例时,或者是class的子类或实现类的实例时,instanceof返回true;否则返回false。示例:
```java
// 定义父类Animal
class Animal {// 父类的方法public void eat() {System.out.println("Animal is eating...");}
}// 定义子类Dog,继承自Animal
class Dog extends Animal {// 子类的方法public void bark() {System.out.println("Dog is barking...");}
}public class Main {public static void main(String[] args) {Animal animal = new Animal();Dog dog = new Dog();// 检查animal对象是否是Animal类的实例System.out.println(animal instanceof Animal); // true// 检查animal对象是否是Dog类的实例System.out.println(animal instanceof Dog); // false// 检查dog对象是否是Animal类的实例System.out.println(dog instanceof Animal); // true// 检查dog对象是否是Dog类的实例System.out.println(dog instanceof Dog); // true}
}
```输出结果:
```
true
false
true
true
```
这篇关于Java 面向对象进阶 11 多态的优势和弊端(黑马)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!