Java面向对象之什么是继承?
2021/10/4 11:10:49
本文主要是介绍Java面向对象之什么是继承?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
继承
- 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
- extends的意思是“扩展”。子类是父类的扩展。
- Java中类只有单继承,没有多继承!即 一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子
- 继承是类与类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
- 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
- 子类和父类之间,从意义上讲应该具有“is a”的关系。
- 私有的东西无法被继承
- object类
- super
- 方法重写
- 继承是多态的前提,如果没有继承,就没有多态。 - 继承主要解决的问题就是:共性抽取。 - 继承关系当中的特点: 1、子类可以拥有父类的“内容”。 2、子类还可以拥有自己专有的内容。
- 定义父类的格式:(一个普通的类定义) public class 父类名称{ //..... } - 定义子类的格式: public class 子类名称 extends 父类名称{ //..... }
super
父类
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个
- super 必须只能出现在子类的方法或者构造方法中
- super 和 this 不能同时调用构造方法!
this 与 super 的不同
- 代表的对象不同:
1、this:本身调用者这个对象,访问本类内容。
2、super:代表父类对象的应用,访问父类内容。
前提:this:没有继承也可以使用;super:只能在继承条件下才可以使用 - 构造方法
1、this();本类的构造
2、super();父类的构造
this的典型三种用法:
package OOP.Demo06; /* * super关键字用来访问父类内容,而this关键字用来访问本类的内容。用法有三种: * 1、在本类的成员方法中,访问本类的成员变量。 * 2、在本类的成员方法中,访问本类的另一个成员方法。 * 3、在本类的构造方法中,访问本类的另一个构造方法。 * 在第三种方法中要注意: * A、this(...)调用必须是构造方法的第一个语句,唯一一个。 * B、super和this两种构造调用,不能同时使用。 * */ public class Zi extends Fu{ int num = 20; public Zi(){ this(123); //本类的无参构造,调用本类的有参构造 // this(1,2); //错误写法。必须是构造方法的第一个语句 } public Zi(int n){ } public Zi(int n,int m){ } public void showNum(){ int num = 10; System.out.println(num);//10,局部变量 System.out.println(this.num);//20,本类中的成员变量 System.out.println(super.num);//30,父类中的成员变量 } public void methodA(){ System.out.println("AAA"); } public void methodB(){ this.methodA();//在本类的成员方法中,访问本类的另一个成员方法。 System.out.println("BBB"); } }
黑暗是现实,共舞是选择。
这篇关于Java面向对象之什么是继承?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?