继承
为什莫要写继承?
共性抽取(把多个类的相同部分拿出来写到一个类中),减少代码的重复率。没有继承就没有重写,没有重写就没有多态。
继承的关键字 extends
父类基类超类 子类,派生类
面向对象第二大特征:继承
1.在继承关系中,子类就是一个父类,也就是说子类可以比当作父类看待 比如说:父类是人类,子类是学生类,那么,学生是一个人类
2.定义父类 ,父类就是一个普通类 3.定义子类的格式 public class 子类名称 extends 父类名称{
子类继承父类以后,父类声明的属性方法,子类都可以去调用
注意:当父类中有私有的属性或方法时,子类同样可以获取,只是因为封装性,只能通过方法调用,不能直接调用 继承是单继承的,一个父有多个子类,一个子只有一个父;
重写
1.方法重写
子类继承父类以后,如果父类的方法满足不了子类的要求,重写;
2.方法重写的规则
1.方法名,参数列表相同,返回值类型必须和父类一摸一样 @override 检测是否正确重写
2.子类方法的权限必须大于等于父类方法权限的修饰符。 public》protected》缺省》private
3.重写和重载的区别
重载,同一个类,同一个方法名,不同参数列表。
重写,不在同一个类,同一个方法名,参数列表必须相同(覆盖)
继承关系中,父子类构造方法调用顺序
1.子类构造方法中含有一个默认的super父类构造方法。
2. 可以用super来重载父类构造
3. Super子类构造必须放在第一句 子类必须调用父类构造方法,没有则赠送一个
Super的三种用法
- 在子类成员方法中调用父类的成员变量 super.父类变量
- 在子类中的成员方法中,调用父类的成员方法
- super.父类方法 在子类的构造方法,调用父类构造方法
This的三种方法
1.在本类的成员方法中,访问本类的成员变量
2. 在本类的成员方法中访问本类的其他成员方法
3. 在本类的构造方法中,调用类的构造用,
注意事项:
1.super this唯一一个
2.super和this 只能调用一个构造方法
继承特点:
1.Java是单继承的,有且只有一个父类
2.Java可以多级继承,孙子-》儿子-》爸爸-》爷爷
3.父类只有一个,子类可以有多个