多态概念
多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果
多态存在的三个必要条件:
1.需要存在继承和实现关系
2.同样的方法调用而执行不同操作、运行不同代码(重写)
3.在运行时,父类或者接口的引用变量可以引用其子类的对象
多态的作用:
1.多态通过分离做什么和怎么做,从一个角度将接口和实现进行分离
- 多态消除了类型之间的耦合关系
3.多态的存在提高了程序的拓展性和后期的可维护性
案例:
abstract class Animal{
String name;
abstract public void eat();
}
class Animal
{
String name;
public void eat(){};
}
class Dog extends Animal
}
public void eat() {
System.out.println("大鱼吃小鱼");
}
}
class Cat extends Animal
{ public void eat() {
System.out.println("猫吃鱼");
}
}
public class Test {
public static void main(String[] args) {
Animal an1 = new Dog();
Animal an2 = new Cat();
an1.eat();
an2.eat();
}
}
对象的上下转型
1.由子类转型成父类,在继承图上是向上移动的,一般称为向上转型
2.向上转型是从一个较专用类型向通用类型转换,所以总是安全的,也就是说,子类是父类的超集
3.向上转型过程中,类接口中唯一可能发生的事情是丢失方法,而不是获取方法
4.向下转型,不安全
用法:
result:布尔类型
object:必选项,任意对象表达式
class:必选项,任意已定义的对象类