多语言展示
当前在线:1744今日阅读:103今日分享:49

java中继承与多态

多态性允许您对某种类型的行为进行定义, 并有许多不同的类实现该行为。继承允许您从超类派生类的行为和定义。
一、继承的基本概念
1

什么是继承?继承就是可以直接使用前辈的属性和方法。为什么需要继承?自然界如果没有继承,那一切都是处于混沌状态。在软件开发中,我们可以借鉴自然界的机制。已经有的东西我们希望能够直接拿来用(复用)而不用重复做。

2

案例:定义人类

3

员工类:

二、类的继承
1

如何使用继承呢?

2

使用继承就很好的解决了上面提出的两个问题。Extends是“拓展、延伸”的含义,public  class Employee extends Person

3

就是声明一个叫做Emoployee的类,它是在Person类的基础上进行拓展,专业技术语称之为继承自Person类Super是“超”的含义,Person类相对于Employee类就是超类,通俗一点的说法就是父类。子类继承了父类的属性和方法,当然也可以再次基础上进行拓展—加和改。在案例中加了“薪水”属性,改了“打印”方法。这里有一个专业术语—重写(override)。继承不仅解决了刚才的两个问题,还使得类有层次结构,逻辑上也更加合理。比如“员工”也是“人”。

三、多态
1

多态就是将同一个消息发送给不同对象时,它们所做的响应可能是不同的。比如说动物都有“叫”的方法,但是狗是“汪汪”,而猫是“喵喵”,当它们接收到被打的消息时,所做的响应是不同的。

2

定义一个动物类,实现“叫”的方法

3

定义一个狗类,继承自动物类,重写“叫”的方法

4

定义一个猫类

5

测试程序

6

这种做法是比较笨拙的,有几种动物就需要定义几个方法,这个可能没完没了。有没有一个一劳永逸的方法?不要传递Dog或者Cat等对象,而是传递一个Animal类对象就可以解决上面的问题。测试程序修改为

四、总结
1

赋值兼容性规则hit方法形参是Animal类型,而实参是Dog或者Cat,所以类型不一致,为什么还可以呢?所谓赋值兼容性规则,指的是凡是需要用到父类引用的地方,都可以使用它的子类引用去代替。比如某人请求派车接他,结果对方派了个三轮车去接了,虽然他可能不满意,但是也没有办法,因为对方是按照他的要求做的。

2

多态形参一定是父类的引用,而实参可以是它的任何一个子类的引用。

推荐信息