Day13 继承知识点综合

发布时间 2023-12-04 17:49:45作者: 问稻

1.继承

  • java 只有单继承 关键字:extends
class A{}//父类
class B extends class A{}//子类B继承了A类

2.继承权限

  • 相较于C++ 的public,protected, private,java对不写继承的default的定义不一样:

    • c++ default = private
    • Java不写则默认是 default,是一个新的权限, 所以 Java 有四种 public,protected, private,default。
  • default :包访问权限
    默认访问权限没有关键字,通常被称为包访问权限 (packageaccess) (有时也称为friendly)。

    • 这意味着当前包中的所有其他类都可以访问那个成员。对于这个包之外的类,这个成员看上去是private 的。
    • 由于一个编译单元(即一个文件)只能隶属于一个包,所以通过包访问权限,位于同一编译单元中的所有类彼此之间都是可访问的。包访问权限可以把相关类聚到一个包下,以便它们能轻易地相互访问。

3. Object类

Java 中所有类都会继承Object类,无论程序中有没有显式写明这种继承关系。有点像JS对象中的原型prototype的prototype即Object。

4. Super关键字

​ 加了super 关键字后 同名 属性 或者 方法 直接直接指向 父类

class Person{
    String name;
}
Class Man extends Person{
    String name;
    void showName(String name){
        System.out,println(name);//指向形参name
        System.out.println(this.name);//指向当前实例 Person 中的name
        System.out.println(super.name);//指向父类Person的name
    }
}

5. this()与super()

this()是当前类的构造器,有参构造或者无参构造

super()是父类的构造器,有参构造或者无参构造

  • super()和this()都要求放在方法体中的第一行否则报错,所以这两者不能共存

6.多继承

  • java 的类没有多继承,只有单继承
  • java 的接口可以多继承