java中person作用_以下Java程序中Person(){};是什么意思,有什么作用?
匿名用户
1级
2013-08-20 回答
Person()方法是用来创建实例的构造方法,例如你要创建一个Person类的实例就需要new Person(),这里的Person()就是Person类的构造方法,构造方法没有返回值(注意是没有返回值 不是返回void),并且名称必与类名一致。
因为你重载了一个构造方法Person(String n, char s),系统就不会再为你提供无参的构造方法了,也就是说你只能通过
new Person(String n, char s) 来实例化对象,而调用new Person()则会报错,因为找不到该方法。所以你要再写一个无参的构造方法Person(),这样你就可以通过new Person()和new Person(String n, char s)两种方式来创建对象了。
追问:
那为什么Person(){};在这段代码之中不能删除呢?
追答:
当一个类被另一个类继承时,
实例化子类必先实例化父类,
若不指定子类创建实例时会自动调用super()方法,也就是父类的无参构造方法。
所以你要想删除父类中的无参构造方法只有通过两种方式:
1.删除掉子类中的所有调用super()的构造方法,未声明的就是默认调用,例如你的无参构造方法
2.在子类的构造方法中声明调用父类的有参构造方法例如Student中的super(n,s)
但是一般都要写一个无参方法 以为很多插件例如Hibernate 他就会去调用你的无参方法创建实例,如果你的类中没有无参方法Hibernate 就无法帮你创建实例
class Person {
String name;
char sex;
Person(String n, char s) {
name = n;
sex = s;
}
void show() {
System.out.println("nameis" + name + ",sexis" + sex);
}
}
class Student extends Person {
int number;
Student(String n, char s, int num) {
super(n, s); //删除子类中的无参构造方法 并指定该子类的构造方法去调用父类中指定的构造方法,让JVM不去调用无参方法
this.number = num;
}
void show() {
System.out.println("nameis" + name + ",sexis" + sex + ",numberis"
+ number);
}
}
class Pupil extends Student {
double hcScore;
Pupil(String n, char s, int num, double hcs) {
super(n, s, num); //同上
hcScore = hcs;
}
void show() {
System.out.println("nameis" + name + ",sexis" + sex + ",numberis"
+ number + ",Scoreis" + hcScore);
}
}
java中person作用_以下Java程序中Person(){};是什么意思,有什么作用?相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- 微信小程序中如何使用数据库_如何在程序中使用数据库
微信小程序中如何使用数据库 如何在程序中使用数据库 许多.NET解决方案都是数据库驱动的,因此我们很多人常常想知道如何访问数据库. 为了帮助您理解该问题的答案,我提供了以下示例,作为如何从数据库检索数 ...
- 微信小程序中嵌套html_在微信小程序中渲染HTML内容3种解决方案及分析与问题解决...
大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 在微信小程序中渲 ...
- 什么叫做java程序中的继承_【Java】基础16:什么叫继承?
原标题:[Java]基础16:什么叫继承? 面向对象三大特性:封装,继承.多态. 继承用一句话总结就是:父亲可以有很多儿子,但儿子只能有一个亲爹. 继承描述的是事物之间的所属关系.看下图: 动物是一个 ...
- Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法
public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...
- qt如何捕获应用程序输出_企业应用程序中需要捕获的5大Java性能指标
qt如何捕获应用程序输出 有兴趣了解如何使用AppDynamics捕获这些Java性能指标吗? 立即开始免费试用 ! 前几篇文章介绍了应用程序性能管理(APM),并指出了有效实施APM战略的挑战. 本 ...
- JAVA 实现FTP功能_在Java程序中实现FTP功能
本文来演示在JAVA编程中实现FTP功能的三个重要部分内容的源程序: FtpList部分是用来显示FTP上的文件; GetButton部分为从FTP下传一个文件; PutButton部分为向FTP服务 ...
- java枚举对象作用_浅析Java编程中枚举类型的定义与使用
定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...
- java 8 中文字体_在java程序中直接使用中文字体文件
在java程序中直接使用中文字体文件.代码中的hb.ttf文件请用你自己的中文字体文件代替 java学习 java培训 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际 ...
- java窗体中添加图片_在java窗体程序中添加图片的方法
在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...
最新文章
- 解密:面部特征点检测的关键技术
- 关卡 动画 蓝图 运行_上车喂,建模大神带你学UE4在编辑器启动时是如何运行蓝图的...
- Scrapy爬虫基本使用
- 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 那一天我们许下约定(组合数学,DP)
- 试题12 交叉排序(小-大,大-小)
- AiLearning:一个 GitHub万星的中文机器学习资源
- 7.1.Zeng_Cache(2) --- 缓存原理
- Unity针对文件进行MD5码校验
- html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
- oracle数据库userenv,oracle中的userenv及sys_context的参数
- Xposed 反检测
- D咚买菜抢购autojs核心代码分享
- mysql 当前时间小时制_日期函数——MYSQL
- js中的change事件
- python爬虫---某站排名100
- 驼峰式与下划线命名规则
- RxCache原理分析
- nbu进程的异常造成备份出错