匿名用户

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(){};是什么意思,有什么作用?相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. 微信小程序中如何使用数据库_如何在程序中使用数据库

    微信小程序中如何使用数据库 如何在程序中使用数据库 许多.NET解决方案都是数据库驱动的,因此我们很多人常常想知道如何访问数据库. 为了帮助您理解该问题的答案,我提供了以下示例,作为如何从数据库检索数 ...

  3. 微信小程序中嵌套html_在微信小程序中渲染HTML内容3种解决方案及分析与问题解决...

    大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 在微信小程序中渲 ...

  4. 什么叫做java程序中的继承_【Java】基础16:什么叫继承?

    原标题:[Java]基础16:什么叫继承? 面向对象三大特性:封装,继承.多态. 继承用一句话总结就是:父亲可以有很多儿子,但儿子只能有一个亲爹. 继承描述的是事物之间的所属关系.看下图: 动物是一个 ...

  5. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  6. qt如何捕获应用程序输出_企业应用程序中需要捕获的5大Java性能指标

    qt如何捕获应用程序输出 有兴趣了解如何使用AppDynamics捕获这些Java性能指标吗? 立即开始免费试用 ! 前几篇文章介绍了应用程序性能管理(APM),并指出了有效实施APM战略的挑战. 本 ...

  7. JAVA 实现FTP功能_在Java程序中实现FTP功能

    本文来演示在JAVA编程中实现FTP功能的三个重要部分内容的源程序: FtpList部分是用来显示FTP上的文件; GetButton部分为从FTP下传一个文件; PutButton部分为向FTP服务 ...

  8. java枚举对象作用_浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...

  9. java 8 中文字体_在java程序中直接使用中文字体文件

    在java程序中直接使用中文字体文件.代码中的hb.ttf文件请用你自己的中文字体文件代替 java学习 java培训 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际 ...

  10. java窗体中添加图片_在java窗体程序中添加图片的方法

    在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...

最新文章

  1. 解密:面部特征点检测的关键技术
  2. 关卡 动画 蓝图 运行_上车喂,建模大神带你学UE4在编辑器启动时是如何运行蓝图的...
  3. Scrapy爬虫基本使用
  4. 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
  5. 数据结构实验之栈二:一般算术表达式转换成后缀式
  6. 那一天我们许下约定(组合数学,DP)
  7. 试题12 交叉排序(小-大,大-小)
  8. AiLearning:一个 GitHub万星的中文机器学习资源
  9. 7.1.Zeng_Cache(2) --- 缓存原理
  10. Unity针对文件进行MD5码校验
  11. html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
  12. oracle数据库userenv,oracle中的userenv及sys_context的参数
  13. Xposed 反检测
  14. D咚买菜抢购autojs核心代码分享
  15. mysql 当前时间小时制_日期函数——MYSQL
  16. js中的change事件
  17. python爬虫---某站排名100
  18. 驼峰式与下划线命名规则
  19. RxCache原理分析
  20. nbu进程的异常造成备份出错

热门文章

  1. 在线制作流程图的实用工具网站
  2. 自定义view2/12----Paint常用方法(主要是ColorMatrix,Xfermode)
  3. 以Fitbit看新智能硬件商业模式
  4. 2022登高架设考题及在线模拟考试
  5. 耳机不分主从是什么意思_【“沃”新品】TWS真无线蓝牙耳机 彰显品质生活!...
  6. 反病毒理念、历史、现状与未来
  7. 个人做的职业规划以及分析报告
  8. Mac xmind安装与破解版
  9. 【KAFKA】kafka可视化工具kafkaTool 免费下载
  10. 婚恋大数据火了,靠大数据找对象,靠谱吗?