📜  什么都从C++的父类继承?(1)

📅  最后修改于: 2023-12-03 15:06:28.356000             🧑  作者: Mango

什么都从C++的父类继承?

在C++中,每个类都会从一个父类继承,如果你没有指定父类,则默认情况下会从C++的最基本的父类Object继承。

Object类

Object类是C++中所有类的最基本的父类,它定义了一些基本的方法和属性,包括以下:

方法

  • toString():将当前对象转化为字符串类型。
  • hashCode():返回当前对象的哈希码。
  • equals(obj):判断当前对象是否和传入的对象obj相等。
  • clone():克隆当前对象的一个副本。
  • finalize():对象销毁前会被调用。

属性

  • Class:当前对象所属的类的信息。
继承

继承是C++中面向对象编程非常重要的一个特性,它允许类从一个基类派生出新的类,并继承基类中所有的方法和属性。

class BaseClass {
public:
  void doSomething() {
    std::cout << "I am BaseClass!";
  }
};

class SubClass : public BaseClass {
public:
  void doSomething() {
    std::cout << "I am SubClass!";
  }
};

int main() {
  SubClass obj;
  obj.doSomething(); // I am SubClass!
  return 0;
}

在上面的例子中,SubClass类从BaseClass类继承了doSomething()方法,并重写了这个方法。

多继承

C++中还支持多继承,也就是一个类可以从多个父类中继承方法和属性。但是多继承会带来一些问题,比如命名空间冲突等等,所以使用多重继承时需要谨慎。

class MyClass : public BaseClass1, public BaseClass2 {
public:
  void doSomething() {
    std::cout << "I am MyClass!";
  }
};

int main() {
  MyClass obj;
  obj.doSomething(); // I am MyClass!
  obj.BaseClass1::doSomething(); // I am BaseClass1!
  obj.BaseClass2::doSomething(); // I am BaseClass2!
  return 0;
}

在上面的例子中,MyClass类从BaseClass1BaseClass2两个类中分别继承了doSomething()方法。

总结

在C++中,每个类都会从一个基类继承属性和方法,如果没有指定基类,则会默认继承Object类。继承是C++中面向对象编程非常重要的一个特性,它允许类从父类中派生出新的类,并继承父类中所有的方法和属性。多继承也是C++的一个特性,但是使用时需要谨慎。