天天看點

教你從實戰中領悟繼承(上) | 帶你學《Java面向對象程式設計》之四十二

上一篇:再生與終結-初識屬性覆寫與final | 帶你學《Java面向對象程式設計》之四十一

【本節目标】

通過閱讀本節内容,你将進一步掌握簡單類及其常見屬性、方法的編寫過程,進一步了解繼承的意義。

繼承分析案例

下面将通過幾個簡短的程式要求對于繼承的概念進行鞏固。對于程式開發而言,簡單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()) ;
    }         
}           
教你從實戰中領悟繼承(上) | 帶你學《Java面向對象程式設計》之四十二

圖一 執行結果一

在這樣的操作案例裡面發現子類對象執行個體化、構造方法調用、方法覆寫全部都有了。

案例分析二(管理人員與職員)

定義員工類,具有姓名、年齡、性别屬性,并具有構造方法和顯示資料方法。

定義管理層類,繼承員工類, 并有自己的屬性職務和年薪。 定義職員類,繼承員工類,并有自己的屬性所屬部門和月薪。

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面向對象程式設計》之四十三 更多Java面向對象程式設計文章檢視此處