当前位置:网站首页>继承关系下构造方法的访问特点
继承关系下构造方法的访问特点
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();
}
}
总结
以上就是对于继承关系下对访问构造方法的特点,以供参考。
边栏推荐
- leetcode-另一棵树的子树
- 使用OpenVINO实现飞桨版PGNet推理程序
- CMS website construction process
- 树表的查找
- Object.defineProperty实时监听数据变化并更新页面
- Transfer Learning - Joint Geometrical and Statistical Alignment for Visual Domain Adaptation
- Live preview | 30 minutes started quickly!Look at credible distributed AI chain oar architectural design
- 为什么他们选择和AI恋爱?
- Leetcode刷题——22. 括号生成
- Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
猜你喜欢
Flink 1.15.1 集群搭建(StandaloneSession)
“嘀哩哩,等灯等灯”,工厂安全生产的提示音
迁移学习——Joint Geometrical and Statistical Alignment for Visual Domain Adaptation
MySQL3
KingbaseES V8 GIS data migration solution (2. Introduction to the capabilities of Kingbase GIS)
J9数字货币论:web3的创作者经济是什么?
如何逐步执行数据风险评估
2022 EdgeX中国挑战赛8月3日即将盛大开幕
nodeJs--封装路由
Xunrui cms website cannot be displayed normally after relocation and server change
随机推荐
The use of pytorch: temperature prediction using neural networks
力扣-二叉树的最大的深度
【Endnote】Word插入自定义形式的Endnote文献格式
高数_复习_第1章:函数、极限、连续
1349. Maximum number of students taking the exam Status Compression
leetcode-对称二叉树
Log an error encountered when compiling google gn "I could not find a ".gn" file ..."
【MySQL series】- Does LIKE query start with % will make the index invalid?
特殊矩阵的压缩存储
Advanced Numbers_Review_Chapter 1: Functions, Limits, Continuity
Leetcode brushing questions - 22. Bracket generation
How do programmers without objects spend the Chinese Valentine's Day
Flink 1.15.1 集群搭建(StandaloneSession)
CMS建站流程
sql语句多字段多个值如何进行排序
"Dilili, wait for the lights, wait for the lights", the prompt sound for safe production in the factory
【存储】曙光存储DS800-G35 ISCSI各映射LUN给服务器
如何看待自己的羞愧感
How to simply implement the quantization and compression of the model based on the OpenVINO POT tool
Residential water problems