我有三个班,一人班,主班和多纳班,
人员等级
public class Person{
private String name;
private String dateOfBirth;
private String gender;
private String mobileNumber;
private String bloodGroup;
Person(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public String getBloodGroup() {
return bloodGroup;
}
public void setBloodGroup(String bloodGroup) {
this.bloodGroup = bloodGroup;
}
public void displayPersonDetails( )
{
System.out.println("Name : " + name);
System.out.println("Date of Birth : " +dateOfBirth);
System.out.println("Gender : " +gender);
System.out.println("Mobile Niumber : " +mobileNumber);
System.out.println("Blood Group : "+bloodGroup);
}
}
施主类
class Donor extends Person
{
private String bloodBankName;
private String donorType;
private String donationDate;
public Donor() {
}
public String getBloodBankName() {
return bloodBankName;
}
public void setBloodBankName(String bloodBankName)
{
this.bloodBankName = bloodBankName;
}
public String getDonorType() {
return donorType;
}
public void setDonorType(String donorType) {
this.donorType = donorType;
}
public String getDonationDate() {
return donationDate;
}
public void setDonationDate(String donationDate) {
this.donationDate = donationDate;
}
public void displayDonationDetails( ) {
System.out.println("Donation Details :");
super.displayPersonDetails();
System.out.println("Blood Bank Name : "+bloodBankName);
System.out.println("Donor Type : "+donorType);
System.out.println("Donation Date : "+donationDate);
}
}
主要类别
package Eboxex1;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Donor d=new Donor();
Person p=new Person();
Scanner sc=new Scanner(System.in);
System.out.println("Enter the name :");
p.setName(sc.nextLine());
System.out.println("Enter Date of Birth :");
p.setDateOfBirth(sc.nextLine());
System.out.println("Enter Gender :");
p.setGender(sc.nextLine());
System.out.println("Enter Mobile Number :");
p.setMobileNumber(sc.nextLine());
System.out.println("Enter Blood Group :");
p.setBloodGroup(sc.nextLine());
System.out.println("Enter Blood Bank Name :");
d.setBloodBankName(sc.nextLine());
System.out.println("Enter Donor Type :");
d.setDonorType(sc.nextLine());
System.out.println("Enter Donation Date :");
d.setDonationDate(sc.nextLine());
d.displayDonationDetails();
sc.close();
}
}
输出
我不知道是什么错误。
当我们运行main方法时,意味着它将询问用户的详细信息,然后 Name, Date of Birth, Gender, Mobile Number, Blood Group
你要去医院吗 Person
类(getter和setter方法),然后 Blood Bank Name, Donor Type, Donation Date
你要去医院吗 Donor
类(getter和setter方法),然后 displayDonationDetails
在主类中调用。在这个方法中,我们必须调用person类中的细节。但该方法无法获取 Person
类到 Donor
类方法
3条答案
按热度按时间c7rzv4ha1#
您正在创建两个独立的对象:person“p”和donor“d”(由于继承,这是person本身)。
然后在“p”对象上设置所有个人数据(姓名、出生日期、性别等),在“d”对象上设置所有捐赠者数据(捐赠者类型、捐赠日期等)。
因此在main方法的末尾,您的对象如下所示:
人员“p”:
捐赠者“d”(捐赠者从person类继承):
然后通过调用“displaydonationdetails”方法,只显示捐赠者“d”的数据。所以一切正常。
只需创建施主对象“d”并为其设置所有值,然后一切都按预期进行。
vtwuwzda2#
你整个计划只需要捐赠对象。您似乎正在创建两个对象:person对象p和donor对象d,并在这两个对象上调用set方法。在整个程序中只使用捐赠者对象d,并在捐赠者类中显示个人详细信息。在display donationdetails()中调用super.displaypersondetails()作为第一行或者更好您可以在person类中创建一个方法caled displaydetails(),并使捐赠者类覆盖该方法
idv4meu83#
使用继承时,会自动获取父类的属性。所以你只需要创建子类对象。
你的主要课程应该是这样的:-