Day 13 继承

发布于:2023-01-20 ⋅ 阅读:(10) ⋅ 点赞:(0) ⋅ 评论:(0)

什么是继承,继承的好处

将多个类的共性内容,抽取到一个独立的类中,从而产生特殊关系(父类—子类关系)

好处

  1. 提高代码复用性
  2. 提高代码可维护性
  3. 类的继承是多态的前提

继承的特点

  • 可以层层继承
  • 只支持多继承,不支持单继承

子类继承父类,构造方法如何访问

构造方法是不能继承的,子类通过super()默认访问父类的无参构造方法

子类继承父类,子类的所有构造方法默认访问父类的无参构造方法;

实际开发中:

写代码的时候 子类继承父类:

子类的无参构造方法----默认父类无参 子类的有参构造方法—直接访问父类有参构造方法

static关键字的特点

  1. 随着类的加载而加载,优于对象存在

  2. 不能和this共存

  3. 本身概念:体现,共享,共用;

  4. 访问方式:类中静态的东西----> “类成员”,直接推荐方式,使用类名访问

    类名.变量名;

    类名.方法名() ;

构造代码块–静态代码块

每次执行构造方法之前,如果存在构造代码块,先执行构造代码块 静态代码块,随着类的加载而加载,类加载一次,静态代码块执行一次!

静态代码块 > 构造代码块 > 构造方法

继承中成员变量/方法的关系

  1. 子类和父类中成员变量名称不一致,访问简单
  2. 子类和父类中的成员变量名称一致
    • 就近原则----先局部方法体内,再类中,再父类中,-----如果找不到发出异常

如果子类的成员变量和父类的不一致

1)先在子类的局部位置找,是否存在,存在,就使用;

2)如果子类的局部位置没有,在子类的成员位置中找,是否存在,存在就使用;

3)如果子类的成员位置也没有,然后再父类的成员位置找,是否存在,存在就使用;

4)如果父类的成员位置也没有,(父类没有它的父类),就报错,整个类中没有变量;

方法重写

通过继承,父类中的方法,子类中可以继承并重写

class fu{
    public void call(){
        System.out.println("hh");
    }
}
class zi extends fu{
    public void call(){
        super();//用来继承父类中的方法体,可以不继承,直接覆盖
        //super();   这样就好了
        System.out.println("666");
    }
}

final

final 表示不可修改的,最终的

修饰类,类不能被继承

修饰方法,方法不能被重写

修饰变量,此时变量是一个常量