2019/0521/抽象類別+介面

#java 抽象類別

函式名稱與()就直接分號了 不會提供{}內實作

###沒有完全的實作,子類別也必須宣告為抽象的

類別 繼承 多型 抽象類別

在架構上概念上擴展 員工這個案例 employee

接著實作整個架構的內容

實作抽象類別

###Employee.java

###SalariedEmployee.java

###HourlyEmployee.java

###CommissionEmployee.java

###BasePlusCommissionEmployee.java

###PayrollSystemTest.java

###/Hello World/src/abstractClass/Employee.java

###/Hello World/src/abstractClass/CommissionEmployee.java

###/Hello World/src/abstractClass/BasePlusCommissionEmployee.java

###/Hello World/src/abstractClass/WeekSalaryPlusCommissionEmployee.java

###/Hello World/src/abstractClass/PaySystemTest.java

到這裡還沒有多型的應用只是類別繼承抽象類別,等等會講應用

剛剛是抽傭的員工(commission employee)

接著要做 時薪員工 ( hourly employee )

###HourlyEmployee.java

接著做Salaried employee 固定薪資員工

###Salaried employee.java

針對底薪加獎金的員工做加薪動作

做再

### PaySystemTest.java

剛剛幾種類別之間都有繼承關係 員工 ( 各種不同的員工

子類別必須要是一種父類別

不管是領時薪或領月薪的員工都是員工

#介面 interface

之前階段?有接觸

都是算錢 但是無繼承關係 所以就要使用介面

##概論

彼此之間有關係 就用抽象類別 做繼承

但類別之間沒有繼承關係 ( 進貨單 並不是一種員工

這種時候就要使用 interface 介面

##實作

##它的架構跟抽象類別有點像

抽象方法 定義有繼承關係的類別

介面 定義無繼承關係的類別

##實作介面 payable

記得介面裡面不可以有任何實體變數與方法

抽象類別可以實作但沒時做的就必須繼續抽像宣告下去

Employee.java 內

getPaymentAmount() 要取代原本的earnings()

但在這個地方還是

沒辦法實作 getPaymentAmount()

所以只要 implements Payable{}

再將earnings() 刪除即可

即可

接著實作 CommissionEmployee.java

只要將earnings() 改為 getPaymentAmount() 即可

做個InterfaceTest.java來測試

介面操作多型期時跟抽象類別操作多型類似

指是乘載的父輩變介面類別

記得介面裡面不可以有任何實體變數與方法

##抽象類別與介面 ( 精神上不一樣 ( 但實作上架構類似

做完了Payable 與 employee 與 salaried employee

接著

實作 Invoice

材料編號 材料敘述 單價 數量

##建構式也是在限制變數範圍

##然後方法則是一些算式

final 說明

###Payable.java

###Employee.java

###CommissionEmployee.java

###SalariedEmployee.java

###WeekSalaryPlusCommissionEmployee.java

###Invoic.java

###InterfaceTest.java

Last updated

Was this helpful?