美文网首页java随笔
继承 ---- 重写

继承 ---- 重写

作者: 71150ce14a00 | 来源:发表于2017-06-19 17:35 被阅读10次

继承:

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

注意:

  • 子类继承父类后,就可以使用父类中的成员, private修饰的成员(成员函数,成员变量)不能被子类继承
  • 如果父类的方法是静态方法,那么子类也必须是静态方法, 如果父类是非静态那么子类也必须是非静态,也就是说方法复写不能改变方法的访问方式

重写:

在子类中, 出现与父类一模一样的函数, 返回类型,方法名,参数列表都相同
子类在复写父类的函数时, 子类的方法访问权限必须大等于父类的访问权限
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() 方法

相关文章

  • 重写继承

    重写是父类的行为满足不了子类的需求时 需要重写 继承是只要定义一次 比如猫类会吃 跑 睡 下面就是只要调用上面...

  • 继承 ---- 重写

    继承: 只有private修饰的成员不能被继承java支持单继承,多重继承(多层次继承),不支持多继承(一个子类有...

  • 继承,重写

    最近学习javaweb突然发现很多java的知识掌握的不牢,所以又回去复习了一下java的基础知识,感觉收获颇深,...

  • 自定义布局

    从 Panel 继承 重写 MeasureOverride 方法重写 ArrangeOverride 方法

  • python-面向对象——继承

    继承 可以多层继承,子类可以直接调用父类的父类的函数 重写 调用被重写的方法: 多继承 python支持多继承 所...

  • swift - 自定义view

    继承自uiview 重写初始化方法 重写布局方法

  • java基础

    1.面向对象的特征答案:继承、多态、抽象、封装继承:子类可以继承父类,但是只能继承一个多态:重写(子类重写父类的方...

  • Java 重写和重载

    重写 重写是基于继承关系的,子类重写可以从父类那里继承的方法,重写的方法名,返回值,参数列表要和父类一致,唯一可以...

  • iOS中实现键盘右上角完成按钮

    继承UITextField,重写drawRect方法

  • TestNG 重写TestCase框架方法

    一、重写TestCase 二、业务测试类继承重写的TestCase

网友评论

    本文标题:继承 ---- 重写

    本文链接:https://www.haomeiwen.com/subject/jsfnqxtx.html