多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
多态的实现要求:
1.要有继承
2.要有重写
3.父类引用指向子类对象
java两种实现多态的方式:继承和接口
代码演示:
interface Fly{
void fly();
}//定义一个接口,接口方式实现多态
abstract class Animal2{
abstract void run();
public void sleep(){
System.out.println("睡觉");
}
}//定义一个抽象类,继承方式实现多态
class Dog1 extends Animal2 implements Fly{
public void fly(){
System.out.println("dog不能飞");
}
public void run(){
System.out.println("dog能跑");
}
}
public class PolymorphismTest{
public static void main(){
Fly one=new Dog1();
Animal2 one2=new Dog1();
one.fly();
one2.run();
one2.sleep();
}
}
多态的实质:
多方法进行重写,从而实现不同类的对象对同一对象做出响应
作用:消除类型之间的耦合关系
代码演示:
interface Fly{
void fly();
}
class DogTest implements Fly{
public void fly(){
System.out.println("dog不能飞");
}
}
class CatTest implements Fly{
public void fly(){
System.out.println("Cat也不能飞");
}
}
public class Polymorphism{
public static void main(String[] args){
Fly one=new DogTest();
Fly two=new CatTest();
one.fly();
two.fly();
}
}