1. 程式人生 > 實用技巧 >Java日誌第12天 2020.7.17

Java日誌第12天 2020.7.17

第五章 類的繼承和多型

5.6綜合例項

一般試卷中都有選擇題,選擇題又可分為單選擇題和多選擇題。其簡單的流程圖如圖5-4所示。

父類Question定義:

子類SingleQuestion

子類MultiQuestion

測試類PaperDemo

5.8 上機練習

1.請分別定義父類People和子類Student,觀察Student是如何共享父類屬性和方法的。

public class People {
public String name;
public String sex;
public int age;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
this.sex=sex;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
}

public class Student extends People {
private String deparetment;//系別
private String specialty;//專業
String name = super.name;
public void test(){
super.getAge();
}
}

2.在題1的People中定義final方法,然後在類Student中定義與該final相同的方法,觀察Student的變化。

public class People {
public String name;
public String sex;
public int age;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
this.sex=sex;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public final void test1(){
}
private final void test2(){
}
}

public class Student extends People {
private String deparetment;//系別
private String specialty;//專業
String name = super.name;
public void test(){
super.getAge();
}
public void test1(){//父類許可權為public,且被final修飾報錯!
}
public void test2(){//父類許可權為private,且被final修飾 不報錯!
}
}

3.將題目1的父類People定義成抽象類,用子類Student來繼承它。

public abstract class People {
public String name;
public String sex;
public int age;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
this.sex=sex;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public abstract void setValues(String name,String sex,int age);
}


public class Student extends People {
private String deparetment;//系別
private String specialty;//專業
String name = super.name;
public void test(){
super.getAge();
}
public void setValues(String name,String sex,int age){
super.name=name;
this.sex=sex;
this.age=age;
}

public static void main(String[] args) {
People people = new Student();
people.setValues("伍正雲","男",25);
System.out.print(people.getName()+"\t"+people.getSex()+"\t"+people.getAge());
System.out.println();
}
}

今天把第五章學完了,感覺前邊學的有點不紮實,明天開始第六章的同時,要往回看一看。