面向对象三大特征之一继承

一,继承概念及使用方法

概念:子类和父类产生关系,子类可以拥有父类中非私有的成员
使用方法:子类 extends 父类

二,继承的特点

(1) 不支持多继承,只支持单继承(一个儿子只能有一个父亲)
(2) 一个父类可以有多个子类(一个父亲可以有多个子类)
(3) 可以多层继承(也可以子子辈辈单传)
(4) object是所有类的超类(如果一个子类没有明确extends父类,那么这个类就默认extends object)

三,super和this

super:代表的是父类对象

  1. 每一个构造方法中,第一行默认有个super()–>代表的是父类的空参构造–>创建子类对象之前会创建父类对象
  2. 调用父类中的成员变量–>在子类中 super.成员变量名
    调用父类中的成员方法–>在子类中 super.方法名(参数)
    调用父类中的构造方法–>在子类的构造中 super()或者super(实际参数)

this:代表的是当前对象
调用本类的成员变量–>在本类中 this.成员变量名
调用本类的成员方法–>在本类中 this.成员方法名
调用本类的构造方法–>在本类的构造中 this()或者this(实参)

注意:

  • this和super调用构造方法的时候,需要写在构造方法的第一行
  • 在构造中,this和super不能同时手动写出来(因为都必须写在第一行)
  • 不要用this在有参和无参两个构造中互相调用

四,继承中变量和成员方法访问特点

父类与子类变量或成员方法重名:new 对象时 等号左边是谁(子或父)就先调用谁的变量,new的是谁就先调用谁的方法,如果没有就去它的父类找!

父类与子类方法中变量或成员方法不重名:new 父类只能调父类的变量,new 子类可以使用子类和父类的变量

五,继承中构造方法访问特点

子类构造方法中默认第一行会有一个隐藏的super()方法,默认执行父类的无参构造

六,方法重写

  • 方法的重载(overload)–>方法名相同,参数列表不同
  • 方法的重写(override)–>子类中有一个和父类一样的方法
    注解:@Override–>检测该方法是不是重写的方法
    前提:必须有子父类继承关系
  • 方法重写的使用场景:
    子类想要对父类中的方法进行功能的增强

七,方法重写注意事项

  • 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。(public->protected->默认->private)
  • 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。
  • 私有方法不能被重写(父类私有成员子类是不能继承的)
发布了30 篇原创文章 · 获赞 39 · 访问量 2067

猜你喜欢

转载自blog.csdn.net/weixin_44564242/article/details/104733367