一.继承
1.格式和特点.
格式:
// 类1继承类2 // 类1是类2的子类,类2是类1的父类 public class 类1 extends 类2 { }
特点
- 子类可以直接使用父类所有非私有属性和行为(构造方法不继承)
继承的注意事项
- Java值只支持单继承,不支持多继承
- 但是支持多层继承
2. 使用继承完成猫狗类案例
3. this和super的使用
this | super | |
---|---|---|
构造方法 | this():访问本类的构造方法 | super():访问父类的构造方法 |
成员变量 | this.成员变量:访问本类的成员变量 | super.成员变量:访问父类的成员变量 |
成员方法 | this.成员方法:访问本类的成员方法 | super.成员方法:访问父类的成员方法 |
4. 方法的重写
二.抽象
1.格式
- 将储存共性内容的父类,定义成抽象类
- 将抽象类中共性方法,定义成抽象方法
抽象类
public abstract class 类名{ }
抽象方法
public abstract 返回值类型 方法名(参数列表);
2.特点
- 抽象类不能创建对象;
- 抽象类不能创建对象,但是有构造方法,为了给子类初始化;
- 构造方法的作用:1.创建对象 2.初始化;
- 抽象类可以没有抽象方法;
- 抽象方法所在的类一定是抽象类或者是接口类;
- 抽象父类中的抽象方法,子类继承父类后,就必须重写所有的抽象方法;
注意事项:
- 子类重写父类抽象方法了,父类抽象方法的存在就没有意义了么?
- 有意义!!!用在多态中,多态有前提是方法的重写.
三.模板方法设计模式
- 定义一个操作中的算法的骨架,二将一些步骤延迟到子类总.模板方法使得子类可以不改变一个算法的结果即可重新定义该算法的某些特定步骤
模板方法设计模式实现的步骤
- 编写算法骨架的类,定义为抽象类
- 把可能发生改变的步骤(方法),定义为抽象方法
- 把子类中继承抽象父类,重写抽象方法
四.其他知识点
1. final
- final:最终的
作用
用来修饰类,方法,变量
- final修饰的类,不能被继承
- final修饰的方法,不能被抽象
- final修饰的常亮,就变成常量,只能被赋值一次
其他细节
- final修饰的是局部变量,正常使用
- final修饰的是成员变量:
- 直接赋值;
- 构造方法直接赋值,每一个构造方法中都要赋值
- 在构造代码块中赋值;(构造代码块就是类中方法外的一对{})
2.权限修饰符
public | protected | 默认(什么都不写) | private | |
---|---|---|---|---|
同一个类中 | √ | √ | √ | √ |
同一个包中 | √ | √ | √ | × |
不同的包中(子父类) | √ | √ | × | × |
不同包中的(无关类) | √ | × | × | × |
构造方法:大部分使用public修饰
成员变量:使用private修饰
成员方法:使用public修饰