Java-子类和父类的几种关系
16lz
2021-01-22
Java-子类和父类的几种关系
一 变量的关系:
如果子父类中出现非私有的同名成员变量的时候
子类要访问该变量用this
父类访问用super关键字
注意:
super和this使用基本一致
this代表的是本类的对象的引用
super代表的是父类对象的引用
下面是一个模型
二 函数的关系:
当子类和父类出现了一样的函数时:
当子类对象调用该函数的时候,会调用子类函数,就像父类函数被覆盖一样
这种特性叫:重写(覆盖)
当子类继承父类,研习了父类的功能,到子类中
但是子类虽然具备该功能,但是功能的内容却和父类不一致
这时,没有必要定义新的功能,而是使用覆盖,保留父类的功能定义,并重写功能主体
特点:
1,子类覆盖父类,必须保证子类的权限大于等于父类权限,否则编译失败
2,静态只能覆盖静态
区别:
重载:只看同名函数的参数列表
重写:子类和父类的方法要一模一样
三 构造函数的关系:
为什么子类对象在初始化的时候,要先访问下父类的构造函数:
因为父类的数据子类可以直接获取,所以子类对象在建立时,需要查看父类是
如何初始化这些数据的
**注意:**super语句一定定义在子类构造函数的第一行(不是第一条语句)
特点:
子类的所有的构造函数,默认都会访问父类空参数的构造函数
因为子类每一个构造函数的第一行都有一条隐式的super();
当父类中没有空参数的构造函数时,子类必须通过super关键字来指定访问父类中的
构造函数
注意:
子类的构造函数的第一行也可以手动指定this语句来访问本类的构造函数。
子类中至少会有一个构造函数会访问父类中的构造函数
更多相关文章
- JavaScript中的map()函数
- 自定义MapReduce输入格式 - 找不到构造函数
- 关于webview中java调用js函数(解决loadUrl函数没反应)
- 使用Java中的Scala:将函数作为参数传递
- 关于Javascript中声明变量、函数的笔记
- 异步执行多个任务并在JavaScript函数中返回第一个成功的结果