java三大特征:封装、继承、多态
封装:对象代表什么就得封装什么样的数据,并提供数据对应的行为。
继承
java 中提供了一个extends关键字,用这个关键字可以让一个类和另外一个类建立起继承关系
public class Studebt extends Person(){
}
例如上段代码中,Student类就叫子类(派生类),Person就叫父类(超类或者基类)
使用继承的好处:
- 可以把多个子类中的重复代码抽取到父类当中,减少代码冗余,提高代码的复用性
- 子类可以在父类的基础上,增加其他的功能,使子类更加强大。
继承需要学习:自己设计 、使用别人的
什么时候使用继承:当类与类之间存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑用继承来优化代码
java继承的特点:
- 单继承:一个子类只能继承一个父类
- 不支持多继承:子类不能同事继承多个父类
- 多层继承:子类A继承父类B,父类B可以继承父类C(C是A的间接父类)
- Object:所有类的直接父类或者间接父类
子类能继承父类中的哪些东西:
- 构造方法: 构造方法不能被继承,非私有和私有都不能被继承(原因:父类的构造方法如果能继承,构造方法的名字,和子类的名字不一样)
- 注意:如果父类中的方法属性的修饰符是private,那么子类将无法调用
- 成员变量:不管是非私有还是私有,子类都可以继承,私有能继承但是不能使用(如果一定要用 可以使用get,set方法)
- 成员方法:非私有可以被继承,私有不可以被继承,如果
继承如何调用成员变量:
- 继承中访问成员变量采用就近原则。
先在局部位置找,本类成员位置找,父类成员位置找,逐级往上找。
如果局部、本类、父类中有相同的变量名:局部直接调用,本类用this. ,父类用super.
重写
- 当父类的方法不能满足子类现在的需求的时候,需要进行方法的重写。
- 重写需要用@override注解去校验子类重写时的语法是否正确。
注意事项:
- 重写的方法名,形参列表必须和父类中的一致
- 子类重写父类的方法的时候,访问权限必须子类大于父类(protected<public)
- 子类重写父类,返回值类型子类必须小于父类
- 重写的方法尽量和父类保持一致
- 私有方法不能被重写
- 子类不能重写父类的静态方法,如果重写会报错。