開発環境
- macOS Mojave - Apple (OS)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- TypeScript (プログラミング言語)
- Node.js(JavaScriptの実行環境)
Programming TypeScript: Making Your JavaScript Applications Scale (Boris Cherny(著)、O'Reilly Media)のChapter 5(Classes and Interfaces)、Exercises(111)1の解答を求めてみる。
違いの一つとして、クラスからクラスは1つのみしか継承できないけど、インターフェースは幾つでも可能。
コード
class ClassA {
say() {
console.log("ClassA")
}
}
interface InterfaceA {
say1(): void
}
interface InterfaceB {
say2(): void
}
// クラスは一つのみ継承可能
class ClassB extends ClassA {
say1() {
console.log("ClassB")
}
}
// Interfaceは複数可能
class ClassC implements InterfaceA, InterfaceB {
say1() {
console.log("ClassC:InterfaceB")
}
say2() {
console.log("ClassC: InterfaceB")
}
}
// 1つのクラスと不空数のInterface
class ClassD extends ClassA implements InterfaceA, InterfaceB {
say1(): void {
console.log("ClassD: InterfaceA")
}
say2(): void {
console.log("ClassD: InterfaceB")
}
}
let a = new ClassA
let b = new ClassB
let c = new ClassC
let d = new ClassD
console.log("ClassA")
a.say()
console.log("ClassB")
b.say()
b.say1()
console.log("ClassC")
c.say1()
c.say2()
console.log("ClassD")
d.say()
d.say1()
d.say2()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)
$ ts-node sample1.ts ClassA ClassA ClassB ClassA ClassB ClassC ClassC:InterfaceB ClassC: InterfaceB ClassD ClassA ClassD: InterfaceA ClassD: InterfaceB $
0 コメント:
コメントを投稿