자바의 클래스 상속

[제목 설명]:

a. name(String 유형), age(int 유형) 및 sex(char 유형) 속성을 사용하여 Person 클래스 를 선언합니다 .

      생성자 메서드를 통한 할당. 각 속성에는 getter/setter 메서드가 있습니다.

      String 유형을 반환하는 show 메소드의 내용은 다음과 같습니다.

         XX 남성(여성) 연령

b. Student 클래스를 선언하고 , Person 클래스를 상속하고, id(int, 학생 번호) 속성을 추가하고, 생성자 메서드를 사용하여 변수 할당을 위한 부모 클래스 생성자 메서드를 호출합니다. 각 속성에는 getter/setter 메서드가 있습니다. Override 상위 클래스의 show 메소드는 다음 내용과 함께 String 유형을 반환합니다.

         XX 남(여) 연령 학번

팁: super를 사용하여 부모 클래스의 show 메소드를 호출하여 학번 부분을 제외한 문자열을 가져온 다음 학번 정보를 추가합니다.

c . Teacher 클래스를 선언하고 Person에서 상속하고 코스(String, Teaching Course) 속성을 추가하고 생성자 메서드를 사용하여 변수 할당을 위한 부모 클래스 생성자 메서드를 호출합니다. 각 속성에는 getter/setter 메서드가 있습니다. 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();
	}
}

Supongo que te gusta

Origin blog.csdn.net/ZQY211210400628/article/details/129779139
Recomendado
Clasificación