继承、super、重写

简介: 整体与部分(has a关系)例如:球队与球员继承注意细节:1.子类可以继承父类的成员,但是千万不要为了减少重复代码去继承,只有正真存在继承的时候才去继承2.

整体与部分(has a关系)例如:球队与球员

继承

  • 注意细节:
    1.子类可以继承父类的成员,但是千万不要为了减少重复代码去继承,只有正真存在继承的时候才去继承
    2.父类私有的成员是不能被继承的
    3.父类中的构造方法也是不能被继承的
    4.创建子类对象时会默认首先调用父类的无参的构造方法
  • 作用:
    调用父类的构造方法的作用是为了初始化从父类继承下去的属性

super关键字

  • 代表的是父类的引用空间
  • 作用:
    1.如果子父类存在着同名的成员时在子类中,默认访问的是子类的成员,可以通过super关键字指定访问父类的成员
    2.创建子类对象时,默认会先调用父类无参的构造函数,通过super关键字可以在子类的构造函数中指定调用父类的函数
img_3946efa84e6f2a4f8945c38dfd339746.png
image.png
  • 注意的细节:
    1.super关键字调用构造函数的时候必须位于构造函数中的第一个语句
    2.this和super调用构造函数的时候不能同时出现在同一个构造函数中

方法的重写

  • 子父类存在的同名函数,这时候我们需要进行方法的重写。
  • 原因:父类的功能不能满足子类的需求
  • 要求:
    1.方法重写,子父类的函数名与形参必须一致
    2.方法重写时,子类的权限修饰符必须要大于等于父类的权限修饰符
    3.方法重写时,子类的返回值类型必须小于或者等于父类的返回值类型
    4.方法重写时,子类抛出的异常类型,必须小于或者等于父类抛出的异常类型
相关文章
|
1月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
26 0
|
4月前
|
Java
怎么用super调用超类构造函数?
Java 中的 `super` 关键字用于子类引用父类的构造函数和成员。当子类构造函数需要调用父类的构造函数时,`super` 须作为第一条语句,如 `super(param列表);`,这允许子类初始化父类的属性。示例中,`BoxWeight` 类通过 `super(w, h, d)` 调用 `Box` 的构造函数来设置尺寸,而 `BoxWeight` 自己仅设置重量。`super` 也可用于访问被子类隐藏的父类成员,实现封装。
|
Java 编译器
2. 什么是重载(Overload)和重写(Override) ?
重载(Overload): 重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。这些方法可以有不同的返回类型、不同的参数类型、不同的参数顺序或不同的参数个数。编译器根据方法的不同参数特征来区分它们,并根据调用时提供的参数类型和个数来确定执行哪个方法。简单来说,重载允许在同一个类中定义多个方法,以便根据不同的参数情况来执行不同的操作。
286 0
|
Java Android开发
构造器里面的super()有什么用?到底写不写?
平时写的单独一个类如果没有直接继承父类就是直接继承的Object,有父类就是间接继承的Object,因为父类会继承Object,java的所有类都是Object的子类,哪怕不写super(),也会默认调用的父类的空构造器。
112 0
|
Java 编译器
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
242 0
|
开发者 Python
子类重写父类方法|学习笔记
快速学习子类重写父类方法,先来介绍子类重写父类方法。多态其实就是一种子类重写父类的方法。
|
Java
Java面向对象——继承、super、this
Java面向对象——继承、super、this
147 0
Java面向对象——继承、super、this
重载(overLoad)与重写(override)的区别与详解
重载(overLoad)与重写(override)的区别与详解
ES6—45:子类对父类方法的重写
ES6—45:子类对父类方法的重写
155 0
ES6—45:子类对父类方法的重写
|
Kotlin
【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
792 0