当前位置:网站首页>继承关系下构造方法的访问特点
继承关系下构造方法的访问特点
2022-08-05 02:11:00 【la go go】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
注意:把this()访问本类其他成员方法也加进去
前言
学习javaSE的面向对象重要点:封装,继承,多态。但当我们真的学习起来,就会发现学习过程中就会有各种各样的小问题,可能刚开始的时候,一些小问题可以容易解决,当学习进入到面向对象的时候,就会出现各种各样的问题,有时候想很久都没有思路,但是请不要放弃,最好的方式是先让大脑休息一会,我在学习的过程中也遇到很多问题,当时绞尽脑汁可能还是百思不得其解,但当第二天再拾起这个问题,往往有恍然大悟之效,但是学习过程中最大的禁忌就是一放九得过且过,抛之脑后,随着时间的推移,困惑越来越多,这样的学习过眼不过心。最终无法在学习的道路上走太远。学习感悟到此就告一段落咯,下面是学习面向对象过程中的一些难点总结,以供参考。
提示:以下是本篇文章正文内容,下面案例可供参考
一、继承【简单总结就是共性抽取,提高代码的复用性】
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
二、使用步骤
1、如何实现继承
语法是:public class 子类 extends 父类{ }
注意:1.子类继承父类,就可以使用父类中非private修饰的成员信息。
2.权限修饰符protected,子类可以直接使用。
代码如下(示例):
package com.shang.demo;
public class Manage extends Employee {
protected int bonus;
public int getBonus() {
return bonus;
}
public void setBonus(int bonus) {
this.bonus = bonus;
}
public Manage() {
super();
}
public Manage(String name,int age,int salary,int bonus) {
this.name=name;
this.age=age;
this.salary=salary;
this.bonus=bonus;
}
public void work() {
System.out.println("努力学习,天天向上");
}
}2.继承关系下构造方法的访问特点
1、在子类的构造放方法中,如果没有显示的写super()【super()调用父类的构造方法】,则默认赠送一个super().
2、如果显示的写了super(),则不赠送了。
3、super(参数),必须是第一个语句。 【有参数就是调用父类有参数构造方法】 在创建子类对象的时候,一定会调用父类的某个构造方法。
代码如下(示例):
创建一个父类
public class Fu {
public int a = 10;
//父类的method成员方法
public void method() {
System.out.println("Fu.method()");
}
//父类的无参构造方法
public Fu() {
System.out.println("Fu.Fu()");
}
//父类的有参构造
public Fu(int a) {
System.out.println("Fu.Fu(int a)");
}
}创建一个子类
public class Zi extends Fu{
public int a = 20;
//创建子类成员方法method
public void method() {
System.out.println("Zi.method()");
}
//子类的无参构造方法
public Zi() {
//super();//调用父类的无参数的构造方法,输出为Fu.Fu(),这个super如果不写就会默认赠送调用父类的无参构造。
super(10);//调用父类的有参构造,输出为Fu.Fu(int a)
System.out.println("Zi.zi()");
}
}
测试类:
public class Test01 {
public static void main(String[] args) {
Zi zi = new Zi();
System.out.println(zi.a);
zi.method();
new Zi();
}
}
3.this关键字【注意事项】
- this.本类的成员变量
- this(参数):调用本类的其他构造方法。
- this.本类的成员方法
a.必须写在构造方法中
b.必须是第一个语句。【this和super不能同时存在】
c.写了this(参数),之后就不再赠送super();
d.构造方法不能递归。
代码如下(示例):
创建父类
public class Fu extends Object{
public Fu() {
super();
System.out.println("Fu.Fu()");
}
}创建子类
public class Zi extends Fu{
public int a = 10;
public void test() {
int a = 20;
System.out.println(a);//20
System.out.println(this.a);//10
//test方法中调用本类的show方法
show();
this.show();
}
public void show() {
System.out.println("Zi.show()");
}
public Zi() {
this(10);//调用本类的有一个int参数的构造方法
System.out.println("Zi.Zi()");
}
public Zi(int n) {
//super();
//this();
System.out.println("Zi.Zi(int n)");
}
public void a() {
b();
}
public void b() {
a();
}
}创建测试类
public class Test01 {
public static void main(String[] args) {
Zi zi = new Zi();
zi.test();
new Zi();
}
}总结
以上就是对于继承关系下对访问构造方法的特点,以供参考。
边栏推荐
- Flink 1.15.1 集群搭建(StandaloneSession)
- (17) 51 MCU - AD/DA conversion
- Programmer's list of sheep counting when insomnia | Daily anecdote
- 力扣-二叉树的前序遍历、中序遍历、后序遍历
- 亚马逊云科技 + 英特尔 + 中科创达为行业客户构建 AIoT 平台
- 2022了你还不会『低代码』?数据科学也能玩转Low-Code啦!
- Pisanix v0.2.0 发布|新增动态读写分离支持
- LPQ (local phase quantization) study notes
- HOG特征学习笔记
- 一文看懂推荐系统:召回06:双塔模型——模型结构、训练方法,召回模型是后期融合特征,排序模型是前期融合特征
猜你喜欢
![[Endnote] Word inserts a custom form of Endnote document format](/img/70/e8a6f15b80e9c53db369fd715e51df.png)
[Endnote] Word inserts a custom form of Endnote document format

Programmer's list of sheep counting when insomnia | Daily anecdote

Leetcode刷题——22. 括号生成

Pisanix v0.2.0 发布|新增动态读写分离支持

KingbaseES V8 GIS data migration solution (2. Introduction to the capabilities of Kingbase GIS)

MySQL3

Opening - Open a new .NET modern application development experience

2022了你还不会『低代码』?数据科学也能玩转Low-Code啦!

sql语句多字段多个值如何进行排序

浅谈数据安全治理与隐私计算
随机推荐
Exploding the circle of friends, Alibaba produced billion-level concurrent design quick notes are too fragrant
Dotnet 6 Why does the network request not follow the change of the system network proxy and dynamically switch the proxy?
Three handshake and four wave in tcp
超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满
Simple implementation of YOLOv7 pre-training model deployment based on OpenVINO toolkit
(17) 51 MCU - AD/DA conversion
How to create an rpm package
优化Feed流遭遇拦路虎,是谁帮百度打破了“内存墙”?
LPQ(局部相位量化)学习笔记
【genius_platform软件平台开发】第七十六讲:vs预处理器定义的牛逼写法!!!!(其他组牛逼conding人员告知这么配置来取消宏定义)
“配置”是把双刃剑,带你了解各种配置方法
【Unity入门计划】2D游戏中遮挡问题的处理方法&伪透视
Hypervisor related knowledge points
网络安全与元宇宙:找出薄弱环节
leetcode-另一棵树的子树
关于#sql shell#的问题,如何解决?
力扣-二叉树的前序遍历、中序遍历、后序遍历
金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)
the mechanism of ideology
Object.defineProperty实时监听数据变化并更新页面