当前位置:网站首页>继承关系下构造方法的访问特点
继承关系下构造方法的访问特点
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();
}
}总结
以上就是对于继承关系下对访问构造方法的特点,以供参考。
边栏推荐
- Exploding the circle of friends, Alibaba produced billion-level concurrent design quick notes are too fragrant
- Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
- 如何逐步执行数据风险评估
- 力扣-二叉树的前序遍历、中序遍历、后序遍历
- 网络安全与元宇宙:找出薄弱环节
- (17) 51 MCU - AD/DA conversion
- 亚马逊云科技 + 英特尔 + 中科创达为行业客户构建 AIoT 平台
- 如何模拟后台API调用场景,很细!
- “配置”是把双刃剑,带你了解各种配置方法
- HOG feature study notes
猜你喜欢

iNFTnews | 对体育行业和球迷来说,NFT可以带来什么?

Transfer Learning - Distant Domain Transfer Learning

【Word】Word公式导出PDF后出现井号括号#()错误

.Net C# Console Create a window using Win32 API
![[Redis] Redis installation under Linux](/img/84/7791a87ff976be15b455f6ddc05bf2.png)
[Redis] Redis installation under Linux

Xunrui cms website cannot be displayed normally after relocation and server change

英特尔 XDC 2022 精彩回顾:共建开放生态,释放“基建”潜能

Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中

hypervisor相关的知识点

如何基于OpenVINO POT工具简单实现对模型的量化压缩
随机推荐
Methods commonly used interface automation test framework postman tests
程序员失眠时的数羊列表 | 每日趣闻
Three handshake and four wave in tcp
Intel XDC 2022 Wonderful Review: Build an Open Ecosystem and Unleash the Potential of "Infrastructure"
【C语言】详解栈和队列(定义、销毁、数据的操作)
PHP技能评测
leetcode-对称二叉树
汇编语言之源程序
浅谈数据安全治理与隐私计算
AI+小核酸药物|Eleven完成2200万美元种子轮融资
A new technical director, who calls DDD a senior, is convinced
使用SuperMap iDesktopX数据迁移工具迁移ArcGIS数据
原生js实现多选框全部选中和取消效果
金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)
英特尔 XDC 2022 精彩回顾:共建开放生态,释放“基建”潜能
散列表的查找(哈希表)
Fragment visibility judgment
EBS利用虚拟列及hint 提示优化sql案例一则
SuperMap支持的国产环境汇总
领域驱动设计——MDD