JAVA—OOP之多态

来源:互联网 发布:mysql unique索引 编辑:程序博客网 时间:2024/05/16 07:04

JAVAOOP之多态

 

水,汽,冰就是一个物体在不同条件下的不同种状态

 

1、什么是多态?

A:生活中的多态

就好比在学校没老师上自习课一样,此时每种人都有不同的状态,有的认真做作业,有的玩手机,有的讲小话,有的睡觉。当听到老师来了的这个消息的时候,每个人都会有不同的反应,有的无所谓,有的吓尿了,有的吓屎了等等等。

B:程序中的多态

同一个引用类型,使用不同的实例而执行不同操作。JAVA通过方法”重载”和方法”重写”来实现多态的。

 

2、多态的简单实例

A:定义一个动物接口,和一个吃东西的方法

public interface Ianimal {

void eat();

}

 

B:定义一个动物抽象类,实现动物接口

public abstract class Animal implements Ianimal{

}

 

C:定义一个猫类,继承动物抽象类,并重写吃东西的方法

public class Cat extends Animal {

//方法重写的体现

@Override

public void eat() {

System.out.println("我是猫,我吃鱼...");

}

}

 

D:定义一个狗了,继承动物抽象类,并重写吃东西的方法

public class Dog extends Animal {

//方法重写的体现

@Override

public void eat() {

System.out.println("我是狗,我吃骨头...");

}

}

 

E:测试类

public class Test {

public static void main(String[] args) {

//向上转型:父类的引用指向子类的实例

Ianimal cat = new Cat();

Test.display(cat);

Ianimal dog = new Dog();

Test.display(dog);

}

//方法重载的体现

public static void display(Ianimal animal){

animal.eat();

}

}

 

F:测试结果

 

 

3、多态的好处

从上面的例子就能看出:如果不采用多态要实现同样的结果的,在调用display()方法的时候就必须要给不一样的参数,而且每次也要改变方法里面的对象去调用方法,这是不是很麻烦呢?采用多态我们每次只改变实现类就可以了。

A:可替换性(substitutability

B:可扩充性(extensibility

C:接口性(interface-ability

D:灵活性(flexibility

E:简化性(simplicity

 

4、使用多态的必要条件

A:有继承关系

B:向上转型

C:必须有重写

 

5、多态的标志

A:方法参数为借口或父类

B:返回值为父类

 

 

 

 

0 0
原创粉丝点击