Java基础知识:多态

栏目: Java · 发布时间: 7年前

内容简介:Java基础知识:多态

多态性是指允许不同类型的对象对同一消息做出相应。具有灵活性、抽象、行为共享、代码共享的优势,共享就意味着最大化利用和简洁,还有就是加载速度。

一、多态的作用

消除类型之间的耦合关系。即同一事件发生在不同的对象上会产生不同的结果。

二、多态的实现形式

1.重载(发生在同一个类中)

2.覆盖(发生在子类中)

三、多态的好处

1.可替换性

2.可扩展性

3.接口性(多态是超累通过方法签名,向子类提供了一个共同的接口)

4.简洁性

5.灵活性

注意:这些好处说起来比较虚,只有你真正应用的时候才能体会得到。

四、多态存在的三个前提

1.要有继承关系

2.子类要重写父类的方法

3.父类引用指向子类对象

代码举例说明:定义一个父类Animal,一个子类Dog

 1 //父类——Animal
 2 public class Animal {
 3     int num = 44;
 4     static int age = 2;
 5 
 6     public void eat() {
 7         System.out.println("动物都需要吃东西");
 8     }
 9 
10     public static void sleep() {
11         System.out.println("动物需要睡觉");
12     }
13 
14     public void run() {
15         System.out.println("长腿的动物爱奔跑");
16     }
17 }
 1 //子类——Dog
 2 public class Dog extends Animal {
 3     int num = 5;
 4     static int age = 5;
 5     String name = "Tom";
 6 
 7     public void eat() {
 8         System.out.println("我爱吃狗粮");
 9     }
10 
11     public static void sleep() {
12         System.out.println("我是一只不爱睡觉的活泼狗狗");
13     }
14 
15     public void catchMouse() {
16         System.out.println("我喜欢多管闲事");
17     }
18 
19 }
 1 //测试类
 2 public class Demo_Test {
 3     public static void main(String[] args) {
 4         Animal a = new Dog();
 5         a.eat();
 6         a.sleep();
 7         a.run();
 8         
 9         System.out.println(a.num);
10         System.out.println(a.age);
11     }
12 }

Java基础知识:多态

注意事项演示:

Java基础知识:多态

从上面的打印结果(7),我们可以得出:

1)成员变量:打印父类,子类没有出来;

2)成员方法:父类为静态的就打印父类,非静态的直接打印子类;

3)在左侧5、6中有报错,是因为我们在调用静态成员时使用的方法不对。(下面会截图演示正确的)

Java基础知识:多态

4)当调用父类里没有的方法时(a.catchMouse();),会报错。)

Java基础知识:多态

此时,多态不能使用自己特有的属性和方法,这是多态的弊端,那要如何解决呢?

答案:把这个父类引用指向子类对象a,再强制变回Dog类型。这样a就是Dog类型的引用了,指向的也是Dog对象了。

Java基础知识:多态

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-06/144872.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

社交红利

社交红利

徐志斌 / 北京联合出版公司 / 2013-8 / 42

如今的互联网,社交网络已占据了主要的位置。如腾讯微博、微信、QQ空间、人人网、新浪微博、唱吧、美丽说、啪啪等等,都可以算是社交网络,将大部分活跃的人们聚集起来,通过文字、图片、语音等形式分享着身边的事。这些社交网络吸引着更多兴趣相投的陌生人成为朋友结成圈子,也衍生出的海量流量和机会,为业界和创业者提供着源源不绝的新机会。可以这样说,社交网络在将散落在人们中的需求汇聚起来,等待着企业来提供服务。因此......一起来看看 《社交红利》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具