java随笔

继承 ---- 重写

2017-06-19  本文已影响10人  71150ce14a00

继承:

只有private修饰的成员不能被继承
java支持单继承,多重继承(多层次继承),不支持多继承(一个子类有多个继承)
不支持多继承: 因为类中的方法有方法体, 内容不一致,导致作为子类产生调用父类不确定性。

注意:

重写:

在子类中, 出现与父类一模一样的函数, 返回类型,方法名,参数列表都相同
子类在复写父类的函数时, 子类的方法访问权限必须大等于父类的访问权限
public > 默认 > private

super和this的区别:

this:

  1. 区分成员变量和局部变量
  2. 记录调用非静态方法地址对象
  3. 调用本类中的构造函数 例子: this(12) Demo(int a){}
    使用this调用本类构造函数,必须位于构造函数的第一行
    super() 调用父类,也必须位于构造函数的第一行
    使用this调用构造函数, 这个构造函数没有隐式三步,在最后没有this的构造函数中有隐式三步
    super:
  4. 调用父类中的成员变量和方法
  5. 调用父类中的构造函数
  6. super只是标识, 标识哪个空间是父类的空间

子类重写父类时, 调用父类方法,super.父类方法名()

关于继承中方法复写,我们在实际开发中基本都是非静态方法, 并且发现父类方法不是我们想要的代码, 那么我们可以定义一个类来继承父类, 并重写该方法在子类中的方法体写自己想要的代码

对于任何类中都有隐式三步,第一步super() 的原因,因为子类在继承父类后要调用父类的非静态成员,因为父类的成员都是在构造函数隐式三步中初始化赋值的,所以要调用父类的super() 方法

上一篇 下一篇

猜你喜欢

热点阅读