面向对象特征之多态性

耗尽温柔 提交于 2020-01-06 22:59:36

多态含义:

1.在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象。

2.在Java中,子类的对象可以替代父类的对象使用。

  ➢一个变量只能有一种确定的数据类型

  ➢一个引用类型变量可能指向(引用)多种不同类型的对象

多态作用:

提高了代码的通用性,常称作接口重用。

注意事项:

1.需要存在继承或者实现关系。

2.在Java程序中有成员方法的重写。

3.成员变量不具备多态性,只看引用变量所声明的类。

成员方法:
1.编译时:要查看引用变量所声明的类中是否有所调用的方法。

2.运行时:调用实际new的对象所属的类中的重写方法。

 1 interface Animal{ //定义接口Anmal
 2     void shout() ; //定义抽象shout()方法
 3 }
 4 
 5 //定义cat类实现Animal接口
 6 class Cat implements Animal {
 7     //实现shout()方法
 8     public void shout() {
 9         System.out.println("喵喵喵");
10     }
11 }
12 
13 //定义Dog类实现Animal接口
14 class Dog implements Anlmal {
15     //实现shout()方法
16     public void shout() {
17         Syatem.out.println("汪汪汪");
18     }
19 }
20 
21 //定义测试类
22 public class Polymorphism {
23     public static void main(String[] args) {
24         //创建Cat对象,使用Animal类型的变量an1引用
25         Animal anl = new Cat();
26         //创建Dog对象,使用Animal类型的变量an2引用
27         Animal an2 = new Dog();
28         //调用animalShout()方法,将anl作为参数传人
29         animalShout(anl);
30         //调用animalShout()方法,将an2作为参数传人
31         animalShout(an2);
32     }
33     //定义静态的animalShout()方法,接收-个Animal类型的参数
34     public static void animalShout (Animal an) {
35         an.shout(); //调用实际参数的shout()方法
36     }
37 }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!