当前位置:首页 » 《关于电脑》 » 正文

[JAVASE] 类和对象(三) - 继承

19 人参与  2024年05月26日 13:28  分类 : 《关于电脑》  评论

点击全文阅读


目录

一. 继承的定义

        1.1 基本概念

        1.2 基本实现 

二. 父类 和 子类中的成员访问

        2.0 super 与 this 关键字

        2.1 访问成员变量 

        2.2 访问成员方法

三. 父类 和 子类中的构造方法

        3.1 访问父类中的构造方法

        3.2 注意事项

四. 权限修饰限定符 

public:

protected:

 default:

 private:

五. 继承方式 

六. final关键字 

        6.1 final 修饰 变量

        6.2 final 修饰 成员方法 

         6.3 final 修饰 类

七. 继承与组合 

八. 总结


一. 继承的定义

        1.1 基本概念

继承就是对多个类的共性进行抽取, 以实现代码的复用.

父类和子类是 is a 的关系. 

        1.2 基本实现 

使用 extends 关键字 来实现继承.

Animal类: 父类/基类/超类

Cat/Dog类: 子类/派生类 


二. 父类 和 子类中的成员访问

        2.0 super 与 this 关键字

super:

0. super关键字并不代表父类的引用, 它起到了一种标识作用, 表示就是要访问父类的成员.

1. super.成员变量

2. super.成员方法

3. super() // 访问父类的构造方法 

this:

0. this关键字代表的是当前对象的引用.

1. this.成员变量

2. this.成员方法

3. this() // 访问子类的构造方法 

        2.1 访问成员变量 

当父类和子类中存在同名的成员变量时, 优先访问子类中的成员变量.

使用  super.成员变量  来指定访问父类中的成员变量.

        2.2 访问成员方法

当父类和子类中存在同名的成员方法是, 优先访问子类中的成员方法.

使用  super.成员方法   来指定访问父类中的成员方法. 


三. 父类 和 子类中的构造方法

        3.1 访问父类中的构造方法

切记: 先有父, 在有子.

在对子类中的成员变量初始化之前, 需要先对父类中的成员变量进行初始化.

此时, 就用到了 super().

        3.2 注意事项

super() 与 this() 都必须放在构造方法中的第一行, 否则,编译失败.

所以,super() 与 this() 不能够同时出现.


四. 权限修饰限定符 

权限关系大小: public > protected > default > private

public:

1. 所有包中的所有类.

protected:

1. 同一个包中的所有类.

2. 不同包中的子类. 

 default:

1. 同一个包中的所有类(包访问权限).

 private:

1. 同一个中的同一类(只能在当前类中被访问).


五. 继承方式 

JAVA当中 不支持多继承(一个类继承多个类). (后面通过接口来解决java中不能多继承的问题)


六. final关键字 

        6.1 final 修饰 变量

final修饰变量 表示 常量.

        6.2 final 修饰 成员方法 

final 修饰成员方法, 表示这个方法具有了不可变性, 不能够被重写.(密封方法) (后期多态时介绍)

         6.3 final 修饰 类

final 修饰的 类,不能够再被其他类继承(密封类).


七. 继承与组合 

组合就是将一个类的实例化对象 作为 另一个类的成员变量.

继承是 is a 的关系.

组合是 has a 的关系.

 


八. 总结

1. 继承的基本定义与实现(使用extends关键字来实现继承).

2. super 关键字(不是代表父类的引用, 是起到了一种标识的作用, 表示就是访问父类中的成员).

3. this 关键字, 代表的是当前对象的引用.

4. 权限控制.

5. final 关键字的使用

6. 组合 是 has a 的关系(相当于是一个东西有一个个的零件).


点击全文阅读


本文链接:http://zhangshiyu.com/post/113846.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1