继承中构造方法访问特点--java 进阶day01
1.子类不可以继承父类的构造方法

构造方法的名称必须与类名一致,上图中类名是Zi,而构造方法名是Fu,肯定不行
2.子类在初始化之前,需要对父类初始化
子类在初始化的过程中,很有可能会调用到父类的数据,如果父类没有提前初始化,子类就无法调用这些数据

3.通过在子类中访问父类的构造方法,从而初始化父类的数据

案例:

1.老师类和学生类中都有姓名和年龄的共性,所以写一个“人”的父类

2.接着写老师类,老师类继承了父类,又因为构造方法无法继承,所以老师类中的构造方法需要自己书写
通过快捷键快速书写子类的构造方法


因为父类中存在一个空参的构造方法和一个带参构造方法,所有系统会询问我们要打印哪种构造方法,直接ctrl+a全选即可

子类继承了父类,共性的变量我们只需要通过父类即可获取到,无需再在子类中写出(Person中有name和age两个变量,而Teacher中没有)
而如何初始化父类中的这些变量就是通过子类的构造方法再加上super()访问父类的构造方法来实现的

创建了老师对象,提供了实参,然后实参传递给形参,形参又传递给super(),super()又传递给父类的构造方法,从而实现了变量的初始化

理解了这一步,后面的就好写了,接着写学生类,学生类多了一个成绩,这就要我们自己单独在学生类中写出

完成了所有变量的初始化后,因为父类中的变量都被私有化,不能直接拿着变量名来使用,但因为子类都已经继承了父类,getName()等方法都可以直接使用,所以我们通过这些方法来打印

我们可以选择使用super.来调用父类中的get方法,但是仔细想想,老师类和学生类都已经继承了Person类,就相当于它们也有一模一样的get方法,那就没必要再通过super.来调用父类的get方法,而可以直接使用get方法

.

如上图,Zi类继承Fu类,就相当于Zi类中已经有了父类的所有成员,可以直接使用
最后,打印结果


继承中构造方法访问特点--java 进阶day01的更多相关文章
- 《java入门第一季》之面向对象面试题(继承中构造方法的关系)
/* 继承中构造方法的关系 A:子类中所有(子类的有参和无参)的构造方法(默认都会访问父类)中(空参数)的构造方法,默认访问父类空参数构造,不默认访问有参数构造 B:为什么呢? 因为子类会继承父类中的 ...
- Java 继承中构造方法的执行顺序问题
在Java中,如果一个类没有任何显式创建的构造器则该类默认会有一个无参构造器:如果显式创建了有参构造器则该类就不再有默认无参构造器. 在Java继承中,构造器并不能被继承,而是被显示或隐式调用. 1. ...
- java的继承中构造方法
构造方法在创建对象的时候是被自动调用的,然后在继承中,是先调用父类的构造方法,然后在调用子类的构造方法, 当构造方法重写之后,在super中添加对应你想要调用构造方法的参数 例:父类 package ...
- python多继承中子类访问祖先类的同名成员
子类调用父类的同名成员 方式1: class A: def f_a(self): print("----A----") class B: def f_a(self): print( ...
- Java多态机制和继承中重写重载
关于Java中多态机制 http://www.cnblogs.com/chenssy/p/3372798.html 这篇博文讲的很透彻 大体意思是 多态定义: 多态就是指程序中定义的引用变量所指向的具 ...
- python 继承中的super
python继承中子类访问父类的方法(包括__init__)主要有两种方法,一种是调用父类的未绑定方法,另一种是使用super(仅仅对于新式类),看下面的两个例子: #coding:utf-8 cla ...
- [Java] 继承中,父类被覆盖的成员变量、方法的可访问性
在 Java 的继承机制里,在子类内部,可以访问父类被覆盖的变量和方法:在子类外部,可以访问父类的被覆盖变量,但是不能访问父类的被覆盖方法. 父类中被覆盖的方法不能在外部被方法,这是出于封装的考虑. ...
- java之继承中的构造方法
继承中的构造方法 1.子类的构造过程中必须调用其基类的构造方法. 2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法. 2.1.使用this(argumen ...
- Java继承中的转型及其内存分配
看书的时候被一段代码能凌乱啦,代码是这样的: package 继承; abstract class People { public String tag = "疯狂Java讲义"; ...
- java学习笔记-继承中super关键字
背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...
随机推荐
- 几种常见的Web服务器-copy
Apache与Tomcat的区别 ,几种常见的web/应用服务器 APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态 ...
- RPC框架的实现原理,及RPC架构组件详解
RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...
- kafka的server.properties文件描述
版本:基于 kafka 2.4.0 http://archive.apache.org/dist/kafka/2.4.0/kafka_2.11-2.4.0.tgz # Licensed to the ...
- 芯片半导体基础(二) :20世纪最伟大的发明,PN结与晶体二极管
liwen01 2025.01.12 前言 PN结 是晶体管的基础,它使得晶体管能够作为一个放大或是开关元器件.晶体管的发明不仅是一个技术上的突破,也标志着电子学的一个新时代.它极大地推动了科技和社会 ...
- Linux基础:从命令行管理文件系统权限
- 使用C# 调用deepseek api接口,来实现正常访问
先上图,结果如图 先去官方网站充值api费用,默认 对应的C#代码封装 1 public class DeepSeekHelper 2 { 3 private static readonly Http ...
- Flink同步kafka到iceberg(cos存储)
一.flink到logger 1.source create table source_table ( id bigint comment '唯一编号' ,order_number bigint co ...
- Luogu P1983 车站分级 题解 [ 绿 ] [ 拓扑排序 ] [ 图论建模 ] [ 虚点 ]
车站分级:很好的拓扑排序题,细节有点多. 图论建模 首先观察对于一条线路,我们可以从中直接得到什么信息: 假设这条线路的开头为 \(st\),结尾为 \(ed\),那么在 \([st,ed]\) 的车 ...
- 使用C#对Godot属性进行改写(其实是覆盖)
本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14568221.html 背景 我还真没想到C#这个鬼东西还能这么用-- 起初是想通过某种办法改写一下La ...
- css的度量单位:px、em、rem、vh、vw、vmin、vmax、百分比
css的度量单位 px,像素数量,适用于比较固定的场景,比如边框宽度,分割线宽度 em em:是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位.一般浏览器字体大小默认为16px,则2em ...