Javaのクラス継承

[タイトル説明]:

a. name (String 型)、age (int 型)、sex (char 型) の属性をもつPersonクラスを宣言します。

      コンストラクターメソッドによる代入。各プロパティにはゲッター/セッター メソッドがあります。

      show メソッドは String 型を返します。内容は次のとおりです。

         男性(女性)XX歳

b. Studentクラスを宣言し、Person クラスを継承し、id (int, Student Number) 属性を追加し、コンストラクター メソッドを使用して親クラスのコンストラクター メソッドを呼び出して変数を割り当てます。各プロパティにはゲッター/セッター メソッドがあります。Override 親クラスの show メソッドは、次の内容を含む String 型を返します。

         XX 男(女) 年齢 学籍番号

ヒント: super を使用して親クラスの show メソッドを呼び出し、学生番号の部分を除いた文字列を取得し、学生番号の情報を追加します。

c . Teacherクラスを宣言し、 Person から継承し、 course (文字列、教えられるコース) 属性を追加し、コンストラクター メソッドを使用して、変数割り当てのために親クラスのコンストラクター メソッドを呼び出します。各プロパティにはゲッター/セッター メソッドがあります。Override 親クラスの show メソッドは、次の内容を含む String 型を返します。

      男性(女性)XX 歳の受講コース

ヒント: super を使用して親クラスの show メソッドを呼び出し、指導されたコースの部分を除く文字列を取得し、指導されたコースの情報を追加します。

d . PersonAppクラスを宣言し、静的メソッド appMain メソッドを記述し、メソッド内で Person、Student、Teacher 型の変数をそれぞれ宣言し、構築メソッドで初期化して、それぞれの情報を表示します。 :以下の表示結果

person に続くのは、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。

Student の後の文字は、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。

Teacher の後に続くのは、中国語のコロンではなく、英語のコロンとそれに続く半角スペースです。実行結果は次のとおりです (最初の 1 はユーザーが入力し、ユーザーが作成した appMain をテストするために使用されます。詳細については、main メソッドを参照してください)。

[出力サンプル]:

【コードは以下のように表示されます】:

import java.util.Scanner;
//声明一个PersonApp类
public class PersonApp{
	public static void appMain(String[] args) {
		Person p=new Person("张淼",21,'男');
		Student s=new Student("高坤",22,'男',5001212);
		Teacher t=new Teacher("李芳香",35,'女',"程序设计基础");
		System.out.println("Person: "+p.show());//显示各自信息
		System.out.println("Student: "+s.show());
		System.out.println("Teacher: "+t.show());
	}
	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		int func = sc.nextInt();
		switch (func) {
		case 1:
			appMain(null);
			break;
		case 2:
			personTest();
			break;
		case 3:
			studentTest();
			break;
		case 4:
			teacherTest();
			break;
      
		default:
			break;
		}
	}
	private static void teacherTest() {
		Teacher t = new Teacher("李芳香", 35, '女', "程序设计基础");
		test(t.getName().equals("李芳香") && t.getAge()==35
				&& t.getSex()=='女' && t.getCourse().equals("程序设计基础"),
				"Teacher构造函数正确","Teacher构造函数不正确");
		test(t.show().equals("李芳香 女 35 程序设计基础"),"teacher.show()通过","teacher.show()未通过");
	}

	private static void studentTest() {
		Student s = new Student("高坤", 22, '男', 5001212);
		test(s.getName().equals("高坤") && s.getAge()==22
				&& s.getSex()=='男' && s.getId()==5001212,
				"Student构造函数正确","Student构造函数不正确");
		test(s.show().equals("高坤 男 22 5001212"),"student.show()通过","student.show()未通过");
	}

	private static void personTest() {
		Person p = new Person("张淼", 21, '男');
		test(p.getName().equals("张淼")  && p.getAge()==21
				&& p.getSex()=='男', "Person构造函数正确","Person构造函数不正确");
		test(p.show().equals("张淼 男 21"),"person.show()通过","person.show()未通过");   
	}

	private static void test(boolean pass, String corr, String wrong) {
		if  (pass) {
			System.out.println(corr);
		} else {
			System.out.println(wrong);
		}  
	}
}

//声明一个Person类
class Person{ //有name age sex属性
	String name;
	int age;
	char sex;
	//通过构造方法进行赋值
	Person(String name,int age,char sex){
		this.name=name;
		this.age=age;
		this.sex=sex;
	}
	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;
	}
	//一个show方法,返回String类型
	public String show() {
		return this.getName()+" "+this.getSex()+" "+this.getAge();
	}
}
//声明一个Student类继承Person,增加id属性
class Student extends Person{
	private int id;
	//通过构造方法,利用super调用父类构造方法来进行变量赋值
	public Student(String name,int age,char sex,int id) {
		super(name,age,sex);
		this.id=id;
	}
	public String getName() {
		return name;
	}
	public int getAge() {
		return age;
	}
	public int getId() {
		return id;
	}
	public char getSex() {
		return sex;
	}
	//Override父类的show方法
	public String show() {
		return super.show()+" "+this.getId();
	}
}
//声明一个teacher类继承Person,增加course属性
class Teacher extends Person{
	String course;
	//通过构造方法,利用super调用父类构造方法来进行变量赋值
	public Teacher(String name,int age,char sex,String course) {
		super(name,age,sex);
		this.course=course;
	}
	public String getName() {
		return name;
	}
	public int getAge() {
		return age;
	}
	public char getSex() {
		return sex;
	}
	public Object getCourse() {
		return course;
	}
	//Override父类的show方法
	public String show() {
		return super.show()+" "+this.getCourse();
	}
}

おすすめ

転載: blog.csdn.net/ZQY211210400628/article/details/129779139