Java学习笔记----继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oampZuo12345/article/details/48903123
  • 继承的概述
  • 继承的格式
  • 继承的好处
  • 继承的弊端
  • Java中继承的特点
  • 继承的注意事项
  • 什么时候使用继承
  • Java中继承的成员关系
  • super和this关键字

继承的概述

多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

单独的这个类成为父类,基类或者超类;这多个类可以成为子类或者派生类。

有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。

继承的格式

通过extend关键字可以实现类与类的继承

class 子类名 extends 父类名 {}

继承的好处

1、提高了代码的复用性(多个类相同的成员可以放在同一个类中)

2、提高了代码的维护性(如果功能的代码需要修改,修改一处即可)

3、让类与类之间产生了关系,是多态的前提(其实这也是继承的一个弊端:类的耦合性很强)

继承的弊端

1、让类的耦合性增强,这样某个类的改变,就会影响其他和该类相关的类

2、打破了封装性

Java中继承的特点

1、Java只支持单继承

2、Java中可以多层继承

继承的注意事项

1、子类只能继承父类的所有非私有成员(成员方法和成员变量),不能继承父类的私有变量

2、子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法

3、不要为了部分功能而去继承

什么时候使用继承

继承中类之间体现的是:“is a”的关系

Java继承中的成员关系

1、成员变量

  • 子类的成员变量名称和父类中的成员变量名称不一样,这个太简单

  • 子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢?

    子类的方法访问变量的查找顺序:

    在子类方法的局部范围找,有就使用。
    在子类的成员范围找,有就使用。
    在父类的成员范围找,有就使用。
    找不到,就报错。
    

2、构造函数

  • 子类的构造方法默认会去访问父类的无参构造方法,是为了子类访问父类数据的初始化

  • 父类中如果没有无参构造方法,怎么办?

    子类通过super去明确调用带参构造
    子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
    让父类提供无参构造
    

3、成员方法

  • 子类的成员方法和父类中的成员方法名称不一样,这个太简单

  • 子类的成员方法和父类中的成员方法名称一样,这个怎么访问呢?

    通过子类对象访问一个方法的查找顺序:
    在子类中找,有就使用
    在父类中找,有就使用
    找不到,就报错
    

super和this关键字

1、super和this的用法

  • this代表本类对应的引用

  • super代表父类存储空间的标识(可以理解为父类引用)

2、用法

  • 访问成员变量(this.成员变量 super.成员变量)

  • 访问构造方法(this(…) super(…))

  • 访问成员方法(this.成员方法() super.成员方法())

猜你喜欢

转载自blog.csdn.net/oampZuo12345/article/details/48903123