person java_以下Java程序中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);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值