面向对象继承三.pdf
面向对象3-继承
问题:
1、static可以修饰什么?在使用的时候要注意那些事情?
2、四种修饰分别是什么?权限是?
3、This关键字是代表什么?用在什么地方?
4、什么是重载??
5、构造方法的特点?
6、New关键字的作用?
1、什么叫作继承?
概念:在原有的类的基础上创建一个新的类,对原有的类
进行扩展
Father类
Son
(IS-A关系)水果是父类,,苹果是子类苹果是水果
extends(扩展)
实现继承的类称之为子类,被继承的类称为父类,(基类,超
类)
父类中有的方法和属性子类都可以去继承,但是非私有的,
Private父类中私有的,
//子类不能获得父类的构造器
单继承和多继承
子类:(派生类)由一个类通过extends扩展派生出来的类
单继承:一个子类只能有一个直接父类。
多继承:一个子类可以有多个直接父类(c++中)
java当中的只支持单继承(对多继承进行的改良)多实现
java中继承树(基类和派生类)
越往上越抽象,越往下越具体
父类
子类
子类
继承的作用:
1)提高代码的复用性,
2)为多态做好铺垫(前提条件是继承)没有继承就没
有多态
3)体现不同层次的抽象
继承注意:
1)子类对象或者子类的方法当中可以直接使用父类
中没有用private修饰的成员(子类可以继承父类非私有的
成员)
2)如果子类对象想要使用父类的private修饰的成员
变量,调用getset方法public修饰的
案例:创建一个父类:里面有running方法,
创建子类,为空类,测试类创建子类对象调用父类中方
法
Super指父类对象的:
1)super(),可以调用父类中的构造方法,只能放在第
一行,super(param1,param2..);
2)子类中使用父类中的方法时,直接super.方法名();
注意:默认构造器当中,隐含了super(),也就是调用父类的构
造器
案例:
1创建一个类,写一个人做事的方法:doing();
2创建学生类以及老师类,继承这个方法
成员覆盖(重写:多态的必须条件)
重写:
前提条件一定是继承
概念:子类中的方法与父类中的方法一模一样时叫做
覆盖(重写)一定现有继承,然后,方法签名和返回值都要
一样
加@Override,保证子类方法是重写的方法
如果不加:只要满足重写概念,也是重写
注意:
1)子类的对象在调用方法时,如果该方法是重写的方法,
运行子类中的方法,如果子类中没有该方法,将调用父类的方
法
2)如果子类重写的方法中调用父类中被子类重写的方法
时,可使用super关键字来区分
final关键字:最终的
final可以用来修饰:变量、方法和类
1、修饰变量:变量就好变成常量,,将不能被改变
2、修饰方法:该方法不能被子类重写(覆盖)
3、修饰类:该类不能被继承,final类中所有的方法都
隐式指定为final
4、用于变量,该变量的不能指向其他的
对象
继承的使用原则:不能随意使用继承,不能只因为要提高代
码复用去使用继承,使用继承的时候,两个类之间必须有逻
辑关系
Object类:所有类的父类
toString()方法的使用
张三男412
412
1、开闭原则(OpenClosePrinciple)
对扩展开放,对修改关闭对于扩展是开放的:意味着模块的行为是