定义:某一类事物的多种存在形态
体现:父类或者接口的引用指向或者接收自己的子类对象。
作用:多态的存在提高了程序的扩展性和后期可维护性
多态:体现在对象的差异性 父子类之间要继承覆盖
public class DuotaiDemo {public DuotaiDemo() {
}
public static void method(Animal animal)
{
animal.eat();
animal.run();
animal.roar();
}
public static void main(String[] args) {
/*多态体现代码*/ //特点:同一方法,不同对象输出,产生不能效果
method(new Dog());//自动类型提升
method(new Wolf());
/* 转型体现代码 */
Animal a=new Dog();//自动类型提升,但是特有功能不能访问
a.eat();//a.gentlt(); 不能访问 限制特有功能的访问 专业名词:向上提升
Dog d=(Dog)a;//向下转型 为了使用子类中的特有方法
d.gentle();//可以访问特有功能
}
}
abstract class Animal //定义一种规则 向上抽取一种抽象的共性
{
abstract void roar();//两个抽象方法,一个具体方法
public void run(){
System.out.println("run");
}
abstract void eat();
}
class Dog extends Animal //继承 重写覆盖
{
public void roar()
{
System.out.println("吼叫汪汪");
}
public void eat()
{
System.out.println("吃屎");
}
public void gentle() //特有属性
{
System.out.println("温和");
}
}
class Wolf extends Animal //继承 覆盖
{
public void roar()
{
System.out.println("吼叫嗷嗷");
}
public void eat()
{
System.out.println("吃肉");
}
}