추상류
12212 단어 TypeScripttech
개시하다
JavaScript
에 없고 TypeScript
에 도입된 기능 중 하나는 추상류이다.반에 관해서는 제가 예전에 범주 및 상속쓴 적이 있는데, 여러분이 읽을 수 있다면 너무 좋아요!
추상류의 사용 방법
//抽象クラス
abstract class Person {
constructor(protected readonly name: string, public age: number) {}
abstract hello(): void;
}
클래스 앞에 abstract 수식자가 있습니다.이 행에서 퍼슨반이 추상반이라고 판단할 수 있다.그리고 Hello 방법에도 abstract 수식자가 있습니다.
이것은 Person류의 하위 클래스(이하 Japanese류라고 약칭)를 계승하여 Hello 방법을 강제로 썼다는 것을 의미한다
abstract class Person {
constructor(protected readonly name: string, public age: number) {}
abstract hello(): void;
}
class Japanese extends Person {//エラー(非抽象クラス 'Japanese' はクラス 'Person' からの継承抽象メンバー 'hello' を実装しません。)
//継承先 extends 継承元
constructor(name: string, age: number, private gender: "male" | "female") {
super(name, age); //superメソッドで継承元のプロパティを継承先でも使える状態にします。
this.gender = gender; //継承元のプロパティを受け継いだあとにJapanese独自のプロパティを設定。
}
}
하위 클래스에서 Hello 방법이 없을 때 오류가 발생합니다.따라서 Japanese 클래스에서는 Person 클래스 hello 방법의 유형에 따라 기술hello 방법을 지정해야 합니다.
abstract class Person {
constructor(protected readonly name: string, public age: number) {}
abstract hello(): void;
}
class Japanese extends Person {
//継承先 extends 継承元
constructor(name: string, age: number, private gender: "male" | "female") {
super(name, age); //superメソッドで継承元のプロパティを継承先でも使える状態にします。
this.gender = gender; //継承元のプロパティを受け継いだあとにJapanese独自のプロパティを設定。
}
hello() {
console.log("konnichiwa" + this.name); //←継承元のメソッドを上書きすることができます。
}
}
const takashi = new Japanese("Takashi", 24, "male");
takashi.hello(); //konnichiwaTakashi
추상류의 주의점
① 추상적인 방법에는 실장을 포함할 수 없다
추상 클래스에서 정의된 추상적인 방법에서 수치 단계의 코드를 쓸 수 없습니다
abstract class Person {
constructor(protected readonly name: string, public age: number) {}
abstract hello() {//エラー(メソッド 'hello' は abstract に指定されているため、実装を含めることができません。)
console.log("hello");
}
}
추상적인 방법은 유형 단계의 코드만 받아들인다② 추상류를 실례화할 수 없다
추상 클래스의 Person을 직접 실례화하려면 Typerscript에서 오류가 발생합니다.
abstract class Person {
constructor(protected readonly name: string, public age: number) {}
abstract hello(): void;
}
const bob = new Person();//エラー(抽象クラスのインスタンスは作成できません。)
abstract를 통해 추상적인 클래스를 계승한 하위 클래스에서 실례화하도록 강요합니다.정리 언어
• abstract를 지정하여 실례화할 수 없으며 계승원의 클래스를 추상클래스라고 부른다.(이번 예는 Person 레벨)
• 추상류를 계승하는 아류를 구상류라고 한다.(이번 예는 일본반)
• 추상류에서 실현되지 않지만 추상류를 계승한 구상류에서 실시하는 방법이나 값을 추상성원이라고 부른다.(이번 예는 Hello 방법)
Reference
이 문제에 관하여(추상류), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tsuboi/articles/417cdf154a3e8dce618e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)