Java基础——继承

继承

  • 继承可以使子类具有父类的属性和方法,还可以在子类中重新,追加属性和方法

子类对象继承了父类对象的所有内容,但不都可见(private)

静态资源属于类,不属于被继承的范畴

  • java中子类只能继承一个类,不能继承多个类
  • java中类支持多层继承

继承格式:

public class 子类名 extends 父类名 {}

父类也被称为基类,超类;子类也被称为派生类

继承中变量访问的优先级

子类局部定义的变量------->子类定义的变量------>父类定义的变量-->......

继承中成员方法访问的优先级():

子类定义的方法------>父类定义的方法-->.......

super

super的使用跟this相似

  • this:代表本类对象的引用;
  • super:代表父类存储空间的标识(可以理解为父类对象的引用)

复习this关键字:

this.成员变量 //访问本类的成员变量

this() //访问本类的构造方法 //注意格式,不用写类名,this就指当前类

this.成员方法() //访问本类的成员方法

继承中构造方法的访问特点

子类中所有的构造方法默认都会访问父类中无参的构造方法

  • 子类继承父类的数据,可能会使用父类的数据,所以子类初始化之前,一定要先完成父类数据的初始化
  • 每一个子类构造方法的第一条语句默认都是:super()

如果父类没有无参构造方法,只有带参构造方法,解决办法:

  1. 通过super调用父类的带参构造
  2. 在父类自己写个无参构造

方法重写

子类中出现和父类中一模一样的方法声明

应用:子类需要父类此方法的功能,自己又有新功能,就要重写

@Override:一个注解,用于检查重写方法的方法声明的正确性

注意事项:

  • 私有方法不能被重写(父类私有成员子类不可见)
  • 子类重写后的方法访问权限不能更低(public>默认>私有)
  • 子类方法的返回值类型要与父类方法相同,或者是返回类型的子类
  • 要是抛异常不能扩散异常(把父类方法抛出的异常增大)
  • 静态方法不属于对象,因此不能被继承,想调直接用类名.方法();静态方法不能与普通方法重名

Guess you like

Origin blog.csdn.net/qq_36853276/article/details/121119984