CLion 2025.2 Help

提取超类

提取超类重构允许将类的某些成员提取到超类中。 在 CLion 中,此重构适用于 C++、Objective-C/C++、Python 和 JavaScript 代码。

示例

之前

之后

class SomeClass { char SomeChar = 'a'; long d22; //This function will be extracted to a base class void exFunc(int); };
class SuperClass { void exFunc(int); }; class SomeClass : public SuperClass { char SomeChar = 'a'; long d22; };

之前

之后

@interface SClass : NSObject { int v; //This variable will be extracted to a superclass } - (void)initV; @end @implementation SClass - (void)initV { v = 20; } @end
@interface SuperClass : NSObject { int v; } @end @interface SClass : SuperClass - (void)initV; @end @implementation SClass - (void)initV { v = 20; } @end

之前

之后

class BaseClass: # This function will be extracted to a base class def eval_smth(self, a, b, c): x = 2*b - c y = 2*b + c return x, y
class SuperClass: def eval_smth(self, a, b, c): x = 2*b - c y = 2*b + c return x, y class BaseClass(SuperClass): pass

之前

之后

class Editor { //This function will be extracted to a superclass View() { console.log(this.name + ' can view'); } Edit() { console.log(this.name + ' can edit'); } }
class User { View() { console.log(this.name + ' can view'); } } class Editor extends User { Edit() { console.log(this.name + ' can edit'); } }

提取一个超类

  1. 在编辑器中,选择您想要提取到超类中的类成员。

  2. 从主菜单中选择 重构 | 提取/引入 | 超类 或从上下文菜单中选择 重构|提取超类

    在上下文菜单中提取超类
  3. 提取超类 对话框中,指定以下内容:

    • 从中提取超类 字段中输入新超类的名称。

    • 要包含在超类中的成员。

    提取超类对话框
  4. 点击 预览 以在继续之前检查重构结果。 如果出现问题,CLion会通知您。

    在提取超类过程中检测到的问题

    依赖问题也会在提取对话框中突出显示:

    提取超类中的依赖问题
  5. 点击 提取 以继续重构。 CLion将创建一个超类并修改原始类以继承该超类。

最后修改日期: 2025年 9月 26日