ྫ͑+BWBͰ͔͘ͳΒ͜͏͍͏ॲཧ
public class Main {
public static void main(String[] args) {
Super instance = new Concrete();
instance.execute();
}
}
public abstract class Super {
public void execute() {
pre();
doProcess();
after();
}
protected abstract void doProcess();
private void pre() {
System.out.println("pre");
}
private void after() {
System.out.println("after");
}
}
public class Concrete extends Super {
@Override
protected void doProcess() {
System.out.println("process");
}
}
HPͷQBOJD
w SFDPWFS͠ͳ͍ͱଞͷHPSPVUJOFΛר͖ࠐΈϓϩά
ϥϜΛΫϥογϡͤ͞Δ
w ෮چޙͦͷؔΛݺͼग़ͨ͠ޙͷޙଓॲཧ͕Βͳ͍
w 0VUCPVOE*OEFYͱ͔4FHNFOUBUJPO'BVMUͷΑ
͏ͳຊͷྫ֎ͷͱ͖ʹ͏ఆͳͷͰɺଞύοέʔδ
ͷQBOJDΛSFDPWFSͯ͠͠·͏ͱϝϞϦ͕ਖ਼͍͠ঢ়ଶ
ͳͷ͔อূͰ͖ͳ͍
// Fatal is equivalent to Print()
followed by a call to os.Exit(1).
func Fatal(v ...interface{}) {
std.Output(2, fmt.Sprint(v...))
os.Exit(1)
}
ඪ४ͷMPHύοέʔδͷ'BUBMؔ
தͰPT&YJU
ΛಡΜͰΔͷͰऴྃ͠·͢
Slide 46
Slide 46 text
ʮ(PͩͱґଘϥΠϒϥϦͷ
ιʔεϦϙδτϦʹؚΊΔͱ
͖͍͚ͨͲʁʯ
Slide 47
Slide 47 text
ʮΒ͍͠ΜͰ͕͢ɺ
͖͋ΒΊ·ͨ͠ʯ
Slide 48
Slide 48 text
7FOEPSJOH
w HPͰWFOEPSσΟϨΫτϦҎԼʹύε͕ͱ͓Δ Ҏ
্
w WFOEPSҎԼʹͯ͢ͷϥΠϒϥϦͷιʔεΛஔ͍ཧ͠
ͦͷ··ϦϙδτϦʹϓογϡͯ͠͠·͏
w ΞοϓετϦʔϜͷӨڹΛड͚ͳ͍ͷͰ҆ఆͯ͠ίϯύΠϧ
Ͱ͖Δ
w ϥΠϒϥϦͷιʔεΛॻ͖͑ΕΔ
Slide 49
Slide 49 text
7FOEPSJOHఘΊͨཧ༝
w ΞοϓετϦʔϜͷมߋΛऔΓࠐΊͳ͍ औ
ΓࠐΈʹ͍͘
w HMJEFͰ͋ΔఔόʔδϣϯཧͰ͖Δ
w (JUIVCͷEJGGϖʔδ͕രൃͨ͠