【本節目标】
通過閱讀本節内容,你将進一步掌握簡單類及其常見屬性、方法的編寫過程,進一步了解繼承的意義。
繼承分析案例
下面将通過幾個簡短的程式要求對于繼承的概念進行鞏固。對于程式開發而言,簡單Java類是其最基礎的組成,也是所有概念最好的融合。
案例分析一(學生類)
建立一個人類(Person)和學生類(Student) ,功能要求如下:
(1)Person中包含4個私有型的資料成員name、addr、Sex、age,分别為字元串型、字元串型、字元型及整型,表示姓名、位址、性别和年齡。一個4參構造方法、一個兩參構造方法、一個無參構造方法、一個輸出方法顯示4種屬性。
(2) Student類繼承Person類, 并增加成員math、english存放數學和英語成績。一個6參構造方法、一個兩參構造方法、一個無參構造方法和重寫輸出方法用于顯示6種屬性。
正常來講,進行一個程式類開發的時候是不需要去考慮子類的問題的,也就是說現在需要做的是進行程式功能的完善定義。是以首先來定義的就是Person類。
class Person {
private String name ;
private String addr ;
private char sex ;
private int age ;
public Person() {}
public Person(String name , String addr) {
this(name ,addr ,’男’ , 0) ;
}
public Person(String name , String addr , char sex , int age) {
this.name = name ;
this.addr = addr ;
this.sex = sex ;
this.age = age ;
}
public String getInfo () {
return ”姓名:” + this.name + “、位址:” + this.addr + “、性别:” + this.sex + “、年齡:” + this.age ;
}
}
class Student extends Person {
private double math ;
private double english ;
public Student() {}
public Student(String name , String addr) {
super(name,addr) ;
}
public Student(String name , String addr , char sex, int age , double math, double english) {
super(name ,addr, sex,age) ;
this.math = math ;
this.english = english ;
}
public String getInfo () {
return super.getInfo() + “、數學成績:” + this.math + “、英語成績:” + this.english ;
}
}
public class JavaDemo{
public static void main(String args[]) {
Student stu = new Student(“張三” , “天安門” , “男” , 12 ,78.99 , 89.98) ;
System.out.println(stu.getInfo()) ;
}
}

圖一 執行結果一
在這樣的操作案例裡面發現子類對象執行個體化、構造方法調用、方法覆寫全部都有了。
案例分析二(管理人員與職員)
定義員工類,具有姓名、年齡、性别屬性,并具有構造方法和顯示資料方法。
定義管理層類,繼承員工類, 并有自己的屬性職務和年薪。 定義職員類,繼承員工類,并有自己的屬性所屬部門和月薪。
class Employee {
private String name ;
private int age ;
private String sex ;
public Employee() {}
public Employee(String name , int age , String sex) {
this.name = name ;
this.age = age ;
this.sex = sex ;
}
public String getInfo() {
return “姓名:” + this.name + “、年齡:” + this.age + “、性别:” + this.sex ;
}
}
class Manager extends Employee { //管理層
private String job ;
private double income ;
public Manager () {}
public Manager (String name , int age , String sex , String job , double income) {
super(name , age , sex) ;
this.job = job ;
this.income = income ;
}
public String getInfo() {
return “【管理層】”super.getInfo() + “、職務:” + this.job + “、年薪:” + this.income ;
}
}
class Staff extends Employee {
private String dept ;
private double salary ;
public Staff () {}
public Staff (String name , int age , String sex , String dept , double salary) {
super(name , age , sex) ;
this.dept = dept ;
this.salary = salary ;
}
public String getInfo() {
return “【職員】”super.getInfo() + “、部門:” + this.dept + “、月薪:” + this.salary ;
}
public class JavaDemo{
public static void main(String args[]) {
Manager man = new Manager(“張三” , 38 ,”女” , “主管” , 150000.00) ;
Staff sta = new Staff(“李四” , 18 ,”男” , “出納” , 3000.00) ;
System.out.println(man.getInfo()) ;
System.out.println(sta.getInfo()) ;
}
}
圖二 執行結果二
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:教你從實戰中領悟繼承(中) | 帶你學《Java面向對象程式設計》之四十三 更多Java面向對象程式設計文章檢視此處