Inheritance Trong C++

Inheritance Trong C++

Inheritance

Trong C ++, có thể kế thừa các thuộc tính và phương thức từ lớp này sang lớp khác. Chúng tôi nhóm “khái niệm kế thừa” thành hai loại:

  • lớp dẫn xuất (con) – lớp kế thừa từ lớp khác
  • lớp cơ sở (cha) – lớp được kế thừa từ

Để kế thừa từ một lớp, hãy sử dụng biểu tượng:.

Trong ví dụ dưới đây, lớp Car (con) kế thừa các thuộc tính và phương thức từ lớp Vehicle (cha):

Example

// Base class
class Vehicle {
  public:
    string brand = "Ford";
    void honk() {
      cout << "Tuut, tuut! \n" ;
    }
};

// Derived class
class Car: public Vehicle {
  public:
    string model = "Mustang";
};

int main() {
  Car myCar;
  myCar.honk();
  cout << myCar.brand + " " + myCar.model;
  return 0;
}

Multilevel Inheritance

Một lớp cũng có thể được dẫn xuất từ một lớp, lớp này đã được dẫn xuất từ một lớp khác.

Trong ví dụ sau, MyGrandChild có nguồn gốc từ lớp MyChild (có nguồn gốc từ MyClass).

Example

// Base class (parent)
class MyClass {
  public:
    void myFunction() {
      cout << "Some content in parent class." ;
    }
};

// Derived class (child)
class MyChild: public MyClass {
};

// Derived class (grandchild)
class MyGrandChild: public MyChild {
};

int main() {
  MyGrandChild myObj;
  myObj.myFunction();
  return 0;
}

Access Specifiers

Bạn đã học được từ chương Bộ định nghĩa truy cập rằng có ba mã định nghĩa có sẵn trong C ++. Public (các thành viên của một lớp có thể truy cập từ bên ngoài lớp) và private (các thành viên chỉ có thể được truy cập trong lớp). Thông số thứ ba, protected, tương tự như private, nhưng nó cũng có thể được truy cập trong lớp kế thừa:

Example

// Base class
class Employee {
  protected: // Protected access specifier
    int salary;
};

// Derived class
class Programmer: public Employee {
  public:
    int bonus;
    void setSalary(int s) {
      salary = s;
    }
    int getSalary() {
      return salary;
    }
};

int main() {
  Programmer myObj;
  myObj.setSalary(50000);
  myObj.bonus = 15000;
  cout << "Salary: " << myObj.getSalary() << "\n";
  cout << "Bonus: " << myObj.bonus << "\n";
  return 0;
}

0 / 5 - (0 Đánh Giá)

Leave a Reply

Your email address will not be published. Required fields are marked *

PHP Code Snippets Powered By : XYZScripts.com
.
.
.
.