在面向对象编程(OOP)中,父类(Parent Class)和超类(Superclass)通常是同一个概念的不同叫法,都表示“被继承的类”。下面从概念、代码层面、运行层面三个角度说明如何识别父类 / 超类。
例如:
Animal(父类 / 超类)
├── Dog(子类)
└── Cat(子类)
class Animal {}
class Dog extends Animal {}
Animal 是 父类 / 超类Dog 是子类extends 关键字识别运行时判断:
Dog dog = new Dog();
System.out.println(dog instanceof Animal); // true
class Animal:
pass
class Dog(Animal):
pass
Animal 是父类 / 超类Dog 是子类查看父类:
print(Dog.__bases__) # (<class '__main__.Animal'>,)
class Animal {};
class Dog : public Animal {};
Animal 是基类(父类 / 超类)Dog 是派生类class Animal {}
class Dog extends Animal {}
Animal 是父类 / 超类Dog 是子类Class<?> clazz = Dog.class;
Class<?> superClass = clazz.getSuperclass();
Dog.__mro__ # 方法解析顺序,包含全部父类和超类
❌ 父类 ≠ 接口
✅ 接口是被“实现”,父类是被“继承”
❌ 所有祖先类都叫父类
✅ 直接继承的叫直接父类,更上层叫间接父类 / 超类
看“谁被继承”,谁就是父类 / 超类;看“继承关系中的上层类”,就是超类。
如果你有具体语言或代码片段,我可以直接帮你指出哪个是父类 / 超类。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。