09-JAVA继承

JAVA继承

JAVA继承思维导图

继承的好处:

减少代码的冗余性(重要性)

编写继承代码:

1、编写父类:

  • [修饰符] class 类名 extends Object{

      属性;
      方法;
    

    }

    • Object为超类
  • [修饰符] class 类名{

      属性;
      方法;
    

    }

2、编写子类:

  • [修饰符] class 类名 extends 父类名{

    编写独有属性和方法;
    

    }

注意:

  • 1、当一个没有指明继承哪个父类时,则默认继承Object类(超类)
  • 2、Object类是所有类的父类(超类)
  • 3、在子类中可以直接访问父类中的属性(前提是父类属性没有使用private修饰)

继承中的注意事项:

子类继承父类,但不能继承父类的构造方法

父类也叫做超类(基类),子类也叫做派生类

继承满足的条件:

  • 猫是动物

继承两大特性:

  • 一个类只能继承一个直接的父类,也就是类是单继承性

    • (一个儿子只有一个亲爹)
  • 类具有传递性

常见错误:

手写构造方法时,建议先编写无参构造,再编写需要的

当实例化子类时父类做了什么?

先执行父类的构造方法,在执行子类相匹配(有无参)的构造方法

如果子类构造方法中没有指明则默认调用父类无参构造方法

如果子类构造方法中指明父类哪个构造方法,则先执行父类相匹配的构造方法,然后再执行子类相匹配的构造方法

this与super关键字访问实例变量区别:

this关键字:

  • 代表当前这个对象
  • this可以访问本类中的实例变量、实例方法,也可以访问本类中的其他构造方法
  • this还可以访问本类中的实例变量、实例方法
  • 如果访问实例变量时,默认前面加this,但是当使用this,访问实例变量时,先在当前类中找该属性,如没有找到则去父类中找

super关键字:

  • 表示超类或父类

  • super只能在子类中作用,可以访问父类中的实例变量、实例方法,还可以访问父类的构造方法

  • (super直接去父类中找)

  • super(*)等价于super()

    • (不写默认)

重写:

Overwrite也叫做覆盖

子类方法名称必须与父类方法名称一致

参数列表一致

返回类型一致或父类方法返回类型的子类类型

修饰符一致(不能缩小范围)

子类不能重写:

  • 构造方法不能被重写
  • 属性不能重写
  • 静态方法不能重写
  • 私有方法不能重写
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章