010-面向对象之继承性

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)

一、 继承的引入

为描述和处理个人信息,定义类Person:
010-面向对象之继承性
010-面向对象之继承性
为描述和处理学生信息,定义类Student:
010-面向对象之继承性
010-面向对象之继承性
通过观察,我们发现,Student类和Person类都有一些共同的属性,实际上按照我们现实生活中的经验,我们也应该知道,学生也应该是人类,那么我们就可以通过继承来减少我们的代码编写量,简化Student类的定义:
010-面向对象之继承性
010-面向对象之继承性
Student类继承了父类Person的所有属性和方法,并增加了一个属性school。Person中的属性和方法,Student都可以使用。相似的还有:
010-面向对象之继承性

二、为什么要有继承?

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。此处的多个类称为子类(派生类),单独的这个类称为父类(基类或超类),可以了解为:“子类 is a 父类”。
类继承语法规则:
class SubClass extends SuperClass {
//...
}

三、继承的作用

1、继承的出现减少了代码冗余,提高了代码的复用性。
2、继承的出现,更有利于功能的扩展。
3、继承的出现让类与类之间产生了关系,提供了多态的前提。

四、注意事项

1、不要仅为了获取其他类中某个功能而去继承。
2、子类继承了父类,就继承了父类的方法和属性。
3、在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法。
4、在Java中,继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”。

五、继承规则

1、子类不能直接访问父类中私有的(private)的成员变量和方法。
010-面向对象之继承性
2、Java只支持单继承和多层继承,不允许多重继承,即:一个子类只能有一个父类,一个父类可以派生出多个子类。
010-面向对象之继承性
010-面向对象之继承性
010-面向对象之继承性

六、单继承与多层继承举例

010-面向对象之继承性

七、练习

1、定义一个学生类Student,它继承自Person类
010-面向对象之继承性
2、定义一个ManKind类,包括:
(1)成员变量int sex和int salary;方法void manOrWoman(),根据sex的值显示“man“(sex==1)或者“woman”(sex==0);方法void employeed(),根据salary的值显示“no job”(salary==0)或者“job”(salary!=0)。
(2)定义类Kids继承ManKind,并包括:成员变量int yearsOld;方法printAge()打印yearsOld的值。
(3)定义类KidsTest,在类的main方法中实例化Kids的对象someKid,用该对象访问其父类的成员变量及方法。

猜你喜欢

转载自blog.51cto.com/12859164/2547226