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


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

查看所有标签

猜你喜欢:

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

Machine Learning

Machine Learning

Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00

Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具