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?