30--子类对象的实例化过程

2023-11-12

在继承的操作中,对于子类的实例化也是有要求的,即子类对象在实例化之前必须首先调用父类中的构造方法,然后再调用子类自己的构造方法。
实例1:定义父类

package com.qwy.bean;
public class Person {
	private String name;
	private int age;
	//手动添加无参构造方法
	public Person() {
		System.out.println("我是父类的"+"Person.Person()方法");
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

实例2:定义子类

package com.qwy.bean;
public class Student extends Person{
	private String school;
	//手动添加无参构造方法
	public Student() {
		System.out.println("我是子类的Student.Student()方法");
	}
	public String getSchool() {
		return school;
	}

	public void setSchool(String school) {
		this.school = school;
	}
	
}

实例3:测试

package com.qwy.test;

import com.qwy.bean.Student;

public class TestDemo {
	public static void main(String[] args) {
		Student student= new Student();
		student.setName("admin");
		student.setAge(22);
		student.setSchool("华育国际");
		System.out.println("姓名:"+student.getName()+"\t年龄:"+student.getAge()+"\t学校:"+student.getSchool());
	}
}

运行结果:
我是父类的Person.Person()方法
我是子类的Student.Student()方法
姓名:admin 年龄:22 学校:华育国际

从运行结果可以看出:子类对象在实例化前默认会首先调用父类的构造方法。就好像没有父亲就没有孩子一样,所以在实例化子类之前首先要将父类中的属性进行初始化操作。当然对于以上的代码实际上在子类的构造方法中隐含了一个super()的语法。代码如下:
实例4:

package com.qwy.bean;
public class Student extends Person{
	private String school;
	//手动添加无参构造方法
	public Student() {
		super();
		System.out.println("我是子类的Student.Student()方法");
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
}

注意:子类实例化过程是一个较为复杂的过程,这里只是简单从代码运行角度说明了下,大家可以看看其他资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

30--子类对象的实例化过程 的相关文章

  • Java中局部变量、静态变量、静态方法的有效范围与调用

    1 局部变量 定义 在成员方法中定义的变量称为局部变量 方法中的形参也可以作为局部变量 例 public void method1 n i均为局部变量 int n for int i 0 i lt 5 i System out printl
  • Python的学习笔记案例6--判断密码强度5.0

    本节课主要讲原来分散的方法封装成一个类 使之成为一个整体 方便调用 就是面向对象编程的思想 1 面向过程编程和面向对象编程的区别 面向过程 POP 以程序执行过程为设计流程的编程思想 面向对象 OOP 以事物为中心的编程思想 什么是对象 O
  • 操作系统之线程

    一 线程简介 早期的计算机系统只允许一个任务独占系统资源 一次只能执行一个程序 由于对程序并发执行的需求 引入了多进程 进程的引入可以解决多任务支持的问题 但是也产生了新的问题 每个进程分别分配资源开销比较大 进程频繁切换导致额外系统开销
  • 如何使用全局变量QT

    兩種方法 第一 使用extern關鍵字聲明 不推薦 破壞了封裝性 第二 新建一個類 存放全局的變量 函數 第一 使用extern關鍵字聲明 不推薦 破壞了封裝性 在一个头文件中声明int var name全局变量 在另一个cpp文件中引用此
  • 单词长度(输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。)

    单词长度 5分 题目内容 你的程序要读入一行文本 其中以空格分隔为若干个单词 以 结束 你要输出这行文本中每个单词的长度 这里的单词与语言无关 可以包括各种符号 比如 it s 算一个单词 长度为4 注意 行中可能出现连续的空格 输入格式
  • 面向对象的编程思想和Python的类,访问和属性,继承

    面向对象的编程思想和Python的类 类的方法和属性 实例方法 这一文从面相对象的角度 介绍类的定义 类的属性和自定义方法 本文将从访问限制 属性 继承 方法重写这几个方面继续介绍面向对象的编程思想和Python类的继承 一 访问权限 Py
  • Java基础学习之函数式编程Comsumer接口(JDK8)

    前言 从毕业到现在正好三年 高难度的项目做了不少 但是基础这个东西一段时间不接触就会忘得一干二净 话不多说 开始今天的学习 1 Consumer接口 接触过 消费者 生产者 模式的同学 肯定对这个单词不陌生 在java8函数式编程和lamb
  • python面向对象编程 类与实例 继承与多态 isinstance

    class Student object def init self name gender self name name self gender gender def set gender self gender if gender ma
  • Python最强知识点整理:面向对象封装案例

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象 然后 让对象调用方法 对象方法的细节 都被
  • C++类属(泛型)——模板详解

    第八章 类属 泛型 模板 1 概述 在程序设计中经常会用到这样的一些程序实体 这些程序实体的实现和所完成的基本功能相同 不同的地方仅在于它们所涉及的数据类型不同 对于这些函数或类 如果能分别只用一个函数和一个类来描述它们 将会大大简化程序设
  • 多线程的一些小问题集锦

    1 线程死亡之后不能再次启动 测试线程是否已经死亡 可以调用isAlive 方法 当线程处于就绪 运行 阻塞三种状态时 返回true 当线程处于死亡 新建状态时返回false 实例代码如下 package com thread public
  • undefined、undeclared、NaN、Null区别

    undefined的是声明了但是没有赋值 javascript在使用该变量是不会报错 undeclared 是未声明也未赋值的变量 JavaScript访问会报错 Null 只有一个null undefined 是由null派生处理的 因此
  • 类的继承层次结构的宽度和深度

    最近在项目开发中 各位兄弟对于现有的架构有所诟病 主要是继承的问题 层次比较深 层次之间没有很明确的功能划分 造成一定的混乱 我来承担工作 想出一套新的方案 满足大家平时开发的需求 先总结下现在项目的问题 一个是层次深 一个是抽象的不好 大
  • java入门六:java基础终章

    1 static关键字 静态变量和类一起加载 final修饰后的类无法被继承 2 抽象类 abstract修饰符可以用来修饰方法也可以修饰类 如果修饰方法 那么该方法就是抽象方法 如果修饰类 那么该类就是抽象类 抽象类中可以没有抽象方法 但
  • c++ point类(含输入和输出的重载)

    问题描述 定义类point 其中包括两个数据成员 均为 int 类型 为点的横坐标和纵坐标 类的成员函数如下 构造函数 包括两个参数 其两个参数的默认值为0 重载运算符 两个点相应的坐标相加 比如 1 1 2 2 3 3 两个点相应的坐标相
  • OS中 main.h 的一些基本概念 以及 类与对象的概念及其实现

    目录 头文件 import lt gt 与 import 的区别 include 与 import 的区别 OC语言的特点 自动释放池 面向对象的 特征 与 概念 以及其基本思想 类 与 对象 的概念 如何用OC中创建与使用对象 如何给对象
  • C++ 抽象类

    抽象类 接口 接口描述了类的行为和功能 而无需完成类的特定实现 C 接口时通过抽象类实现的 设计抽象类的目的 是为了给其他类提供一个可以继承的适当的基类 抽象类本类不能被用于实例化对象 只能作为接口使用 注意 如果试图实例化一个抽象类的对象
  • java学习笔记——第八章 类和方法(二)

    8 4使用方法 java中的方法不能独立存在 他必须属于一个类或者一个对象 因此方法也不能像函数那样被独立执行 因此必须使用类或对象来调用 总结 方法不能独立定义 方法只能在类体中定义 逻辑上讲 方法要么属于该类本身 要么属于该类的一个对象
  • #C++矩阵类的实现

    C 矩阵类的实现 环境 Win10 VS2017 最近老师布置一个简单的C 作业 实现一个矩阵类 并且实现矩阵运算 主要实现运算为矩阵的加 减 乘 除以及求行列式 伴随矩阵 代数余子式和逆矩阵等 在参考网上的一些前辈的代码后 写出了这些运算
  • C++两个类的头文件相互包含

    C 中头文件相互包含的几点问题 一 类嵌套的疑问 C 头文件重复包含实在是一个令人头痛的问题 前一段时间在做一个简单的数据结构演示程序的时候 不只一次的遇到这种问题 假设我们有两个类A和B 分别定义在各自的有文件A h和B h中 但是在A中

随机推荐

  • Springboot中如何打印sql信息和sql参数信息呢?

    转自 Springboot中如何打印sql信息和sql参数信息呢 下文笔者讲述SpringBoot中设置配置文件 使其可打印出sql信息及参数信息的方法分享 实现思路 springboot打印sql信息及参数 我们可采用修改applicat
  • python:openpyxl基础操作(一):创建.xlsx文件

    目录 前言 安装openpyxl 创建 xlsx文件 添加单元格内容 单个添加 多个添加 增删单元格 遍历表格中的值 合并拆分单元格 前言 本文仅供个人学习记录 复习所用 探索过程中难免出现差错和纰漏 如文中有错误 以及可以改进的地方 还请
  • python中的utils模块_python常用方法utils

    always 目录里主要封装了一些自己常用的方法 1 doc2txt 本函数主要目的是方便在写爬虫的时候遇到word附件 下载后直接提取出文本文件 注意 需要安装antiword mac下 brew install antiword 2 f
  • vue3组件通信方式一

    目录 props 父组件给子组件传递数据 子组件获取父组件传递数据 方式1 子组件获取父组件传递数据 方式2 案例 自定义事件 原生DOM事件 自定义事件 案例 全局事件总线 v model useAttrs 不管是vue2还是vue3 组
  • yolov3测试自己的数据

    yolov3测试自己的数据 前言 上一篇我已经介绍了利用yolov3预训练权重文件 只包含卷积层 并训练 只需要进行如下编译 darknet detector train cfg voc data cfg yolov3 cfg darkne
  • macOS 虚拟桌面黑屏(转)

    转自 macOS重置虚拟桌面 macOS 虚拟桌面黑屏 有几次出现如图的情况 以为是iTerm的问题 但是在关闭软件 重启之后 依旧无效 后面经过网友告知 才知道是虚拟桌面的问题 为了清理这个问题 有以下两种方法 法一 在终端输入以下命令
  • VC++闪退的两种解决方式(1然后选择“开始执行(不调试)“,也就是ctrl+F5;2system(“pause“);)

    这几天将开发集成环境换成了vs2010 刚开始用 有些地方不是很懂 通过查阅相关文档 现得以解决 就拿VS2010 调试窗口一闪而过解决方法如下 cpp view plain copy include
  • DAY2:leetcode977有序数组的平方 209 长度最小的子数组 59螺旋矩阵

    一 双指针法 O n 时间复杂度 有序数组的平方 一维数组初始化 vector
  • RTP时间戳概念

    RTP协议不依赖于底层协议 由于UDP包的快速 时实性高的特点 它通常和UDP结合在一起 作为UDP的上层载体数据的形式传播 typedef struct rtp header t uint32 t v 2 protocol version
  • Python基础(3)——PyCharm介绍

    Python基础 3 PyCharm介绍 文章目录 Python基础 3 PyCharm介绍 课程目标 一 PyCharm的作用 二 下载和安装 2 1 下载 2 2 安装 三 PyCharm基本使用 3 1 新建项目 3 2 新建文件并书
  • Qt::UserRole的作用

    Qt UserRole相当于一个索引的作用 对于一些Qt的组件有一个参数位置就需要Qt UserRole void QComboBox setItemData int index const QVariant value int role
  • 设计模式笔记1--单例模式

    设计模式笔记1 单例模式 1 单例模式介绍 Head First设计模式中解释 用来创建独一无二的 只能有一个实例的对象的入场券 即 该类只能有一个示例 其实现逻辑一般是 构造函数声明为private或protect防止被外部函数实例化 内
  • 数据学习(十四)-方差分析与试验设计

    1 方差分析引论 2 单因素方差分析 3 方差分析中的多重比较 4 双因素方差分析 5 试验设计初步 1 方差分析引论 方差分析是比较多个总体的均值是否相等 但本质上它所研究的是变量之间的关系 1 1 方差分析及其有关术语 检验多个总体均值
  • 离线图书推荐,使用sparkMLlib ALS协同过滤算法

    图书推荐 使用sparkMLlib ALS协同过滤算法 bookcrossing数据集 Scala语言 虚拟机ieda平台 代码参照HADOOP大数据实战权威指南第十一章 只能说算是能运行出结果了吧 package com csu impo
  • openGauss学习笔记-53 openGauss 高级特性-Ustore

    文章目录 openGauss学习笔记 53 openGauss 高级特性 Ustore 53 1 设计原理 53 2 核心优势 53 3 使用指导 openGauss学习笔记 53 openGauss 高级特性 Ustore Ustore
  • 2021-01-26Taming Transformers for High-Resolution Image Synthesis(arXiv2020)(有代码)

    转自 https blog csdn net amusi1994 article details 112301258 代码链接 https github com CompVis taming transformers 项目主页 https
  • C++中一个类成员函数调用另一个类成员的方法

    在继承之外 在C 中一个类成员函数调用另一个类成员的方法主要有 类的组合 友元类 类的前向声明 单例模式等 下面主要讲讲这4种方法的实现 方法1 利用类的组合 组合通俗来讲就是类B有类A的属性 如声明一个Person类 再声明一个Teach
  • 【前端面试题之Vue篇】(1)父子组件通信方式Props/$emit

    文章目录 前言 一 父组件向子组件传值 1 Props定义 2 Props 用法 1 路由里注册父子组件 2 父组件里引入子组件 并且注册子组件 3 子组件利用props接受父组件传过来的值 4 展示 二 子组件向父组件传值 1 emit
  • SegGPT_分割上下文中的所有内容

    文章目录 摘要 2 相关工作 2 1 视觉分割 2 2 视觉通才 2 3 上下文视觉学习 3 方法 3 1 上下文着色 3 2 上下文组合 3 3 在上下文中调优 4 实验 4 1 数据集 4 2 一阶段训练细节 4 3 定性结果 4 4
  • 30--子类对象的实例化过程

    在继承的操作中 对于子类的实例化也是有要求的 即子类对象在实例化之前必须首先调用父类中的构造方法 然后再调用子类自己的构造方法 实例1 定义父类 package com qwy bean public class Person privat