簡單的介面和抽象類實現模板設計模式

2021-08-21 10:27:57 字數 1517 閱讀 1510

一、先使用介面實現模板設計模式

public inte***ce mypublic
2、寫模板類(step01和step03是公共的不變的方法,step02是公共各自需要實現改變的方法,也就需要傳入乙個實現類物件)

public class mytemplate 

public void step02(mypublic mypublic)

public void step03()

public void step(mypublic mypublic)

}

3、實現公共的各自實現的方法的介面(哈哈,繞口不,就是實現第一步裡mypublic介面)

public class implementspublic implements mypublic

}

4、編寫各自的類(將模板類作為屬性寫入)

public class mystep 

public void setmytemplate(mytemplate mytemplate)

public static void main(string args)

}

5、結果

step01().......

step02()~~~~~~~

step03().......

二、使用抽象類實現模板設計模式

1、將公共的一致的方法和需要子類更改的抽象的方法寫道乙個抽象類裡

public abstract class mytemplate 

public void step03()

public void step()

}

2、寫第乙個實現類附加列印的結果

public class impl01 extends mytemplate

public static void main(string args)

}impl01.step01()

mytemplate.step02()

mytemplate.step03()

3、寫第二個實現類附加列印的結果

public class impl02 extends mytemplate

public static void main(string args)

}impl02.step01()

mytemplate.step02()

mytemplate.step03()

這樣就實現了由抽象的父類作為模板,裡面包含了變與不變的方法,需要改變的方法就寫成抽象類,交給繼承的子類來完成實現,不變的方法就直接書寫方法體,交給子類繼承,而且方法的具體執行流程也寫在了模板父類裡,這樣,各個子類一是要實現需要按照自己的步驟執行抽象方法,並按照父類的執行流程執行即可,這樣便體現了模板方法設計模式。

抽象方法 抽象類 介面 介面和抽象類的區別

某個父類只知道子類因該包含什麼樣的方法,無法知道這些子類如何實現這些方法。抽象類包含該方法但沒有對該方法的具體實現。有抽象方法的類只能被定義為抽象類,抽象類裡可以沒有抽象方法。抽象方法和抽象類的規則 public abstract class shape private string color p...

介面 抽象類 實現類

如上圖介面類list只具有方法,無法例項化,我們在使用時必須通過下面的實現類來使用list的方法。用乙個類 implements 介面,這樣這個類就可以使用介面中的方法了。2.不用implements,通過api文件下的另請參見 方法建立抽象類物件,2.1 比如介面connection connec...

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...