【Java面向对象】java学习之旅13-继承

如何用SoulChat2.0快速克隆你的心理咨询师?手把手教你搭建AI数字孪生体 本文详细介绍了如何利用SoulChat2.0框架快速构建心理咨询师的AI数字孪生体。通过其核心PsyDT技术,仅需少量真实案例即可合成风格数据并微调大模型,从而低成本地创建能高度模仿特定咨询师语言风格和专业技术的AI分身,适用于预约访谈、心理教育等辅助场景,实现高效的人机协作。 阅读详情

定义:

父类派生出子类,子类继承父类,子类可以获得父类的属性和方法.

使用:

  • extends关键字,声明子类继承父类.
  • super关键字,用于指代父类对象(创建子类对象之前,会先创建父类对象)
  • super()代表父类构造方法,super.方法名()调用父类方法,super.属性名调用父类的属性

例:

/**
 * 人类(父类)
 */
 public class Person { // 声明类名,一个java文件中只能有一个被public修饰的类,并且这个类的类名和文件名一致。

	// 实体类的属性,用来描述对象的特征。
	private String name;
	private int age;
	private char sex;
	private String color;
	
	// 构造方法,用于实例化对象并初始化赋值。
	public Person() {
	}

	public Person(String name, int age, char sex, String color) {
		// this指代的是当前对象,构造方法即将创建的这个对象,或者方法的调用对象。
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.color = color;
	}

	// getters/setters方法,用于操作私有属性,还可以完成对传入值的合法性校验.
	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;
	}

	public char getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	// 类的方法,用于描述对象的行为.
	public void eat() {
		System.out.println("吃东西");
	}
	
	public void sleep() {
		System.out.println("睡觉");
	}
	
	// 重写自Object类,用于将对象的所有属性格式化成一个字符串,便于编程过程中的调试.
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", color=" + color + "]";
	}
	
}
/**
 * 学生类(继承父类)
 */
public class Student extends Person {

	public Student() {
		super(); // 父类的无参构造
	}

	public Student(String name, int age, char sex, String color) {
		// super指代父类对象
		super(name, age, sex, color); // 父类的有参构造
	}
	
	public void study() {
		System.out.println("学习敲代码");
	}
	
	@Override
	public void sleep() {
		System.out.println("好好学习,睡什么睡");
	}
	
	public void sleepFromSuperclass() {
		// 通过super关键字调用父类的其他方法
		super.sleep();
	}
	
	//覆盖或者重写父类的方法
	public String toString() {
		return "Student [name=" + getName() + ", age=" + getAge() + ", sex=" + getSex() + ", color=" + getColor() + "]";
	}
	
}

java继承的注意事项
  1. java的继承是单继承,一个子类只能继承一个父类。
  2. 子类继承父类,创建子类对象,会先执行父类构造方法,再执行子类构造方法,无论是子类的有参还是无参,默认都会调用父类的无参构造。
  3. 子类不可以继承父类的私有属性、私有方法、构造方法、他包父类的默认属性和默认方法。
  4. 如果子类重写了父类方法,子类对象将会调用子类方法。
  5. 父类是抽象类,子类必须实现所有抽象方法,否则子类也是一个抽象类。
  6. 被final修饰的类,不能被继承,被final修饰的方法不能被重写。
  7. 如果一个类没有显示的继承父类,默认继承超级父类Object

引申以下概念:

重写

对继承来的父类方法进行重写

使用:

  1. 发生在父子类中
  2. 方法名相同,参数列表相同,返回值类型相同
  3. 权限修饰符范围不能比父类小
super vs this
  1. this代表本类对象的引用,super代表父类对象的引用
  2. this()代表本类构造方法,super()代表父类构造方法
  3. this和super代表构造方法,只能在构造方法中使用,并且必须是第一行,不能同时存在。
四大访问权限修饰符
访问修饰符含义作用范围
public公开的整个项目
protected受保护的本类、同包其他类、跨包子类
default默认的本类、同包其他类
private私有的本类

总结:

一个类继承自一个类它会获得那个类中的所有方法和属性,并且可以有自己的方法和属性

华为OD机考双机位C卷 - 打印机队列 (Java & Python& JS & C/C++ & GO ) 华为OD机考双机位C卷 - 打印机队列 阅读详情

相关推荐

单细胞双胞过滤-scrublet安装

pip install scrublet ----use-pep517有如下报错,分析可知安装annoy时不会自动更新gcc的版本,centos默认是4.8.5。pip install scrublet ----use-pep517 仍然报错,但似乎不影响使用,提示Successfully installed。打开终端,进入Python环境,输入以下代码,查看Python安装位置。暂时还没尝试是否存在问题,如果存在问题,降级scrublet版本。包的开发依赖的是比较低版本的numpy,会用到。

hzau_t的博客 792

C++类对象大小的计算

(一)常规类大小计算 C++类对象计算需要考虑很多东西,如成员变量大小,内存对齐,是否有虚函数,是否有虚继承等。接下来,我将对此举例说明。 以下内存测试环境为Win7+VS2012,操作系统为32位 一、完全空类 [cpp]view plaincopy #include<iostream> usingnamespace...

daru9708的博客 482

keil自动分配SDRAM空间设置使用

1.修改.sct文件。

qizhi321123的博客 1404

C++子类继承父类后子类的大小

C++子类继承父类后子类的大小 #include  using namespace std; class  A  { private:  int a; }; class B:public  A { private:  int b; }; int main() {  cout  cout  return 0; }   刚开始我一想子类继承父类不会继

deadcodeye的专栏 2053

UM2 3D 打印机 DIY 实践 (2) 电路篇

涉及到的东西非常多,实际上后面还会讲到。主要部件清单: 主板 mega2560 + Ramps1.4 + LCD12864 各一张 42 x38mm x3,xyz 轴各一台 42 x23mm x1,用在挤出机 泰坦远程挤出机 x1 TMC2225 驱动板 x4, 替代a4988、TMC2208,静音效果好,性价比高 s-250-12v 20A开关电源 x1。功率必须足够大,宁可选大一点的 大功率 MOS 管,25A x1 NTC .

afeiqiang的专栏 3600

4G+GNSS定位模块DX-CT511N-B:AT指令实战与多协议通信指南

本文详细介绍了4G+GNSS定位模块DX-CT511N-B的AT指令实战应用与多协议通信配置。内容涵盖TCP/UDP通信、MQTT协议集成、HTTP服务交互以及GNSS定位功能的深度解析,为开发者提供从基础指令到高级调试的完整指南,助力物联网设备开发。

hope8的博客 289

阿里P8传授的80K+星的Java教程:什么是继承?Java中如何声明一个类继承另一个类?的笔记助我修行,我终于“硬”了一回

在现实生活中,说到继承,多会想到子女继承父辈的财产、事业等。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关联体系。例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫继承自猫,而沙皮狗和斑点狗继承自狗。这些动物之间会形成一个继承体系,如图1所示。 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类或基类,子类会自动拥有父类所有可继承的属性和方法。 在程序中,如果想声明一个类继承另一个类,需要使

VX13308414401的博客 199

Aurix TC387 Ethernet代码解析之二_移植

英飞凌官方仅提供了TC397的例程,故需通过TC397例程来移植到TC387新建工程里。TC397官方例程名称【Ethernet_1_KIT_TC397_TFT】,网络上可以免费获取到,此处不赘述。使用工具【

m0_69929716的博客 884

类的继承

一个类(子类)继承另一个类(父类),自动获得另一个类的所有属性和方法,同时可以继续定义自己的属性和方法。 class Car(): def __init__(self): self.car_class = ["Tesla","..."] def XX(self): return True class Electric_Car(Car): def __init__(self, make): super().__init__(make) self.make = make def XX

RUN 779

绕过卡巴斯基通过RPC控制lsass注入DLL

参考国外的XPN以及3gstudent大佬的文章: https://blog.youkuaiyun.com/xiangshen1990/article/details/104872566 https://gist.github.com/xpn/93f2b75bf086baf2c388b2ddd50fb5d0 原理:正常的ssp扩展(dll)可以加载到lsass进程中去,比如kerberos验证都是通...

2ed 3524

【深度学习基础】Temporal Fusion Transformer

从下向上看:全连接(Dense) → ELU(指数线性激活函数(比relu好点,有利于模型收敛)) → 全连接(Dense) → 门控线性单元(Gate)(Gated Linear Units (GLUs)) → Layernorm。:一方面,它可以进行静态上下文变量和动态变量的融合,另一方面,通过门控进行了特征选择操作,门控体现在GLU(门控线性单元)中,用了sigmoid控制信息的通过程度,具有良好的适应性,能够自动选择有效信息,自适应地调整网络复杂性。输入:主输入,可选的上下文向量c。

weixin_41838721的博客 1224

java 类的继承

java作为一个面向对象的语言,与c这种面向过程的语言有着很大的编程逻辑上的不同,java以类为主要的基础,主要通过类与方法实现编程需求,所以类之间的关系在java中占据着很重要的作用,作为一名java初学者,这篇博客主要介绍一下我对java类继承的简单理解。 在java中,一个类可以继承自另一个类,通过在类名后加extends关键字得以实现。 public class DutyIntervalSet<L> extends CommonMultiInterv...

Asterisk0的博客 913

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2523

java学习之旅40--面向对象_13_继承_Object类用法_toString和equals方法_重写toString

Object类(所有类的父类)

southeast_px的专栏 679

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java学习之旅第二季-23:Java面向对象编程测试题

D、枚举常量在比较时,必须使用equals( )方法,不能直接使用 == 运算符,因为 == 会比较对象的地址,而枚举常量可能存在不同地址的实例。C、可以通过 values( ) 方法获取枚举类中所有的枚举常量,该方法返回一个包含所有枚举常量的数组,且数组元素顺序与枚举常量定义顺序一致。B、枚举类中不能定义抽象方法,因为枚举常量是枚举类的实例,而抽象方法必须由子类实现。18、在 Java 中,关于枚举(Enum)的特性和使用,下列说法正确的是( )

摸鱼的老谭 564

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java学习之旅总目录(更新中...)

1、Java语言简介 2、搭建Java开发环境 3、Java程序初体验 4、安装与配置IDEA 5、IDEA的基本使用 6、注释 7、变量 8、数据类型概述 9、数据类型之整型数值类型 10、数据类型之浮点数值类型 11、数据类型之字符类型 12、数据类型之布尔类型 13、数值类型的两个补充 14、数据类型之字符串 15、运算符之赋值运算符 16、运算符之算术运算符 17、运算符之比较运算符 18、运算符之逻辑运算符与条件运算符 19、运算符之位运算符 20、运算符优先级 21、控制语句之if语句

摸鱼的老谭 838

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java Programming Tutorial for Beginners:从零开始的Java学习之旅

Java作为最受欢迎的编程语言之一,凭借其跨平台特性和强大的生态系统,成为编程初学者的理想选择。本教程将带领你从零开始掌握Java编程,通过系统化的学习路径和实践案例,快速构建Java开发技能体系。无论你是零基础新手还是有其他语言经验的开发者,都能通过本项目提供的资源获得全面的Java知识。 ## 准备工作:Java开发环境搭建 🛠️ 开始Java学习前,首先需要搭建完善的开发环境。本项目提

gitblog_00845的博客 443

java学习之旅42--面向对象_15_继承_组合

本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别。首先文章会给出一小段代码示例,用于展示到底什么是继承。然后演示如何通过“组合”来改进这种继承的设计机制。最后总结这两者的应用场景,即到底应该选择继承还是组合。 1、继承 假设我们有一个名为Insect(昆虫)的类,这个类包含两个方法:1)移动move(); 2)攻击attack()。 代码如下:

southeast_px的专栏 529

Java 之旅

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

weixin_45435000的博客 519

Java教程:SE进阶【十万字详解】(上)

大家好,我是程序员小羊!"面向对象和面向过程的思想对比 :​面向过程 : 是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的​面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。类的组成是由属性和行为两部分组成属性:在类中通过成员变量来体现(类中方法外的变量) 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤:​ ① 定义类​ ② 编写类的成员变量​ ③ 编写类的成员方法

yang_xs的博客(只讲干货) 3742

【Java基础教程】Java学习路线攻略导图——史诗级别的细粒度归纳 ~

🍺🍺 各位读者朋友大家好!得益于各位朋友的支持和关注,我的专栏《Java基础教程》至今已经更新近半,我们一起探索了Java语言的许多核心概念和重要特性。在过去的文章中,我们一共涉及了入门介绍、程序基础概念、面向对象、包及访问控制权限、异常处理以及特别篇一共六个篇章,详细阐述了Java基础概念、关键字、各类运算、抽象类、接口、包、权限、异常处理等多个主题知识...

Technology changes the world of life 1万+

新手小白学JAVA 学习路径 知识体系

JAVA基础学习路径 Java基础部分需要学习很多的内容,但是很多小伙伴不清楚自己的学习路径 希望本文可以帮助到你,本文是程序媛泡泡给大家总结的链接汇总,欢迎食用 因为泡泡平时比较忙,所以文章在逐步更新拓展中,可以关注后方便后续查看哦 祝愿大家都能拥抱技术,扬帆起航 ???? 聪明在于勤奋,天才在于积累,与君共勉~ 01 计算机基础知...

OpenSource_的博客 237

PHP面向对象之旅:抽象类继承抽象类(转)

可以理解为对抽象类的扩展   抽象类继承另外一个抽象类时,不用重写其中的抽象方法。抽象类中,不能重写抽象父类的抽象方法。这样的用法,可以理解为对抽象类的扩展。 下面的例子,演示了一个抽象类继承自另外一个抽象类时,不需要重写其中的抽象方法。 01 &lt;? 02 abstract class User ...

weixin_34266504的博客 171

2020->C++程序员之Go语言学习之旅总结

温馨提示: Go语言开发必备的开发手册: https://studygolang.com/pkgdoc Go语言进阶学习书籍->Go语言圣经: https://www.k8stech.net/gopl/ Go语言是典型的面向对象编程语言,特性有继承(匿名字段、实名字段),封装(方法),多态(接口interface)。 面向对象是一种编程思想,本身与编程语言没有关系,只是一些语言很好的支持了面...

Dxs4396的博客 1356

JAVA学习之路

Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。

qq_45350868的博客 1060

“Java编程学习路线图:从新手到专家的全面指南“

学习Java编程语言是一个系统化的过程,涉及多个阶段和技能点。下面是一个推荐的Java学习路线,包括一些关键的里程碑和相应的表情符号来表达学习过程中的情感体验。

辅导大学生代码设计15年 1200
上一篇: 【Java面向对象】java学习之旅12-static关键词
下一篇: 【Java面向对象】java学习之旅14-Object类
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值