簡體   English   中英

從基類訪問並執行子類中的函數

[英]Accessing and executing function in child class from base class

是否可以從基類訪問子類成員並執行子功能?

例如:

class ChildClass extends BaseClass {

    protected childMember = 'someName';

    constructor() {
        super();
        super.runBaseFn();
    }

    runChildFn() {
        console.info('child fn');
    }
}

class BaseClass {

    runBaseFn() {
       if (child.childMember === 'someName') {
           child.runChildFn();
       }
    }
}

這有可能在runBaseFn完成代碼嗎? 或任何類似的解決方案?

您需要在父類中聲明:

class BaseClass {
    protected childMember: string;

    runBaseFn() {
       if (this.childMember === 'someName') {
           this.runChildFn();
       }
    }

    protected runChildFn() {}
}

class ChildClass extends BaseClass {
    constructor() {
        super();

        this.childMember = 'someName';
        super.runBaseFn();
    }

    runChildFn() {
        console.info('child fn');
    }
}

操場上的代碼

您可以使父類abstract

abstract class BaseClass {
    protected childMember: string;

    runBaseFn() {
       if (this.childMember === 'someName') {
           this.runChildFn();
       }
    }

    protected abstract runChildFn();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM