一、 继承的优点
优点:提高代码的可重用性
1、 如何判断A、B类之间是继承关系?
符合 is…a关系
2、java中,所有的类都直接或间接的继承了java.lang.Object类
3、 java中,私有的成员和构造方法没有被子类继承
缺省权限的成员,不能被其他包中的子类继承
二、如何实现继承
1、 将多个类中的共同的成员,提取出来放到一个公共的类(父类、超类、基类),自己只保留特有的成员
2、 多个类(子类、派生类),继承(extends) 公共类
访问修饰符class 子类 extends 父类{
}
说明:class前面的访问修饰符不能为private、protected
三、继承的2大特性
1、 单一性:一个类只能直接继承一个父类
2、 传递性:一个类可以间接的继承多个类(子类可以调用父类的父类…中的成员)
四、子类如何调用父类的成员
1、public属性
super.属性名
2、构造方法
super(【值】);
子类隐式(自动)查找并调用父类的无参数的构造方法
3、 其他方法
super.方法名([值]);
第二次课
一、 方法重写
1、 概念—对从父类继承过来的方法进行重新编写
2、 常见面试题:构造方法可以重写吗?为什么?
3、 方法重载(overloading)和方法重写(overriding)的区别和联系?
方法重载,
在同一个类中(也可以在继承关系中),方法名相同,参数列表(个数、类型)不同,不能根据方法的返回类型和访问修饰符不同,而判定是方法重载
方法重写(方法覆盖),
是对从父类继承过来的方法进行重新编写,
重写方法时,方法名、参数列表、返回类型必须和要重写的父类方法保持一致,访问修饰符可以不同,但访问权限必须要比父类要大
4、 访问修饰符4个(按权限从小到大排列)
private(私有的)< friendly(缺省的)< protected(受保护的)< public(公共的)
二、 在继承关系中,构造方法执行顺序
1、 在继承中,创建子类对象时,会自动调用父类的无参数的构造方法
2、 子类和父类同时存在有构造方法时,它们的执行顺序?
实例化子类对象时,先执行父类中无参数的构造方法,然后再执行子类中的构造方法
3、在子类构造方法中,使用super关键字调用父类的有参数的构造方法,子类将不会再自动调用父类的无参数的构造方法
第三次课
一、 抽象类和抽象方法
1、 抽象方法——方法用abstract修饰
a) 抽象方法,必须位于抽象类中
b) 抽象方法,没有方法体{}
c) 抽象方法,必须被子类重写
2、 抽象类——类名用abstract修饰
a) 作用:
一般用来做父类通过抽象方法来约束子类的行为
b) 使用时注意事项:
l 有抽象方法的类,肯定是抽象类
l 抽象类不能被实例化(创建对象)
l 抽象类中可以包含抽象方法和非抽象方法
l 抽象类中的非抽象方法,子类可以有选择性的重写,抽象方法,必须被子类重写
二、 final修饰符
1、 final修饰的变量——常量
2、 final修饰的类——密封类或封闭类
封闭类不能被其他类继承
3、final修饰的——封闭方法,不能被子类重写