TS中在抽象类中是否可以写一些已经实现的方法?
TS中在抽象类中是否可以写一些已经实现的方法?
这个代码是一个抽象类BaseEdge,在里面有方法updateCache
,这个是已经实现了的。也就是说抽象类中可以有已经实现好的方法是吗?
export abstract class BaseEdge {
...
public updateCache(shapeMap) {
['labelShape', 'labelBackgroundShape'].forEach((id) => {
const shape = shapeMap[id];
if (shape?.getAttribute(LOCAL_BOUNDS_DIRTY_FLAG_KEY)) {
this.boundsCache[`${id}Geometry`] = shape.getGeometryBounds();
this.boundsCache[`${id}Transform`] = shape.style.transform;
shape.setAttribute(LOCAL_BOUNDS_DIRTY_FLAG_KEY, false);
}
});
const { levelShapes, zoom } = this.zoomCache;
Object.keys(shapeMap).forEach((shapeId) => {
const { lod } = shapeMap[shapeId].attributes;
if (lod !== undefined) {
levelShapes[lod] = levelShapes[lod] || [];
levelShapes[lod].push(shapeId);
}
});
const { maxWidth = '60%' } = this.mergedStyles.labelShape || {};
this.zoomCache.wordWrapWidth = getWordWrapWidthByEnds(
[this.sourcePoint, this.targetPoint],
maxWidth,
1,
);
this.zoomCache.zoom = 1;
this.zoomCache.zoomLevel = 0;
if (zoom !== 1) this.onZoom(shapeMap, zoom);
}
}
回复
1个回答
test
2024-07-06
可以有具体实现的方法,但包含abstract
关键字的抽象方法不能有具体实现
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容