Is it possible to access child class members and execute child function from base class?
For example:
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();
}
}
}
Is this possible to accomplish the code in runBaseFn
? Or any similar solution?
You'll need to declare that in the parent class:
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');
}
}
You can make the parent class abstract
:
abstract class BaseClass {
protected childMember: string;
runBaseFn() {
if (this.childMember === 'someName') {
this.runChildFn();
}
}
protected abstract runChildFn();
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.