C 언어
이 튜토리얼에서는 예제를 통해 C++의 상속에 대해 배웁니다.
상속은 C++에서 객체 지향 프로그래밍의 핵심 기능 중 하나입니다. 기존 클래스(기본 클래스)에서 새 클래스(파생 클래스)를 만들 수 있습니다.
파생 클래스는 기본 클래스의 기능을 상속합니다. 고유한 추가 기능을 가질 수 있습니다. 예를 들어,
class Animal {
// eat() function
// sleep() function
};
class Dog : public Animal {
// bark() function
};
여기서 Dog
클래스는 Animal
에서 파생됩니다. 수업. Dog
이후 Animal
에서 파생됨 , Animal
의 구성원 Dog
에 액세스할 수 있습니다. .
public
키워드의 사용에 주목하십시오. Animal에서 Dog를 상속받는 동안.
class Dog : public Animal {...};
private
키워드를 사용할 수도 있습니다. 및 protected
public
대신 . private
사용의 차이점에 대해 알아보겠습니다. , public
및 protected
이 튜토리얼의 뒷부분에서.
상속은 관계입니다. . 관계인 경우에만 상속을 사용합니다. 두 클래스 사이에 존재합니다.
다음은 몇 가지 예입니다.
// C++ program to demonstrate inheritance
#include <iostream>
using namespace std;
// base class
class Animal {
public:
void eat() {
cout << "I can eat!" << endl;
}
void sleep() {
cout << "I can sleep!" << endl;
}
};
// derived class
class Dog : public Animal {
public:
void bark() {
cout << "I can bark! Woof woof!!" << endl;
}
};
int main() {
// Create object of the Dog class
Dog dog1;
// Calling members of the base class
dog1.eat();
dog1.sleep();
// Calling member of the derived class
dog1.bark();
return 0;
}
출력
I can eat! I can sleep! I can bark! Woof woof!!
여기, dog1 (파생 클래스 Dog
의 개체 ) 기본 클래스 Animal
의 멤버에 액세스할 수 있습니다. . Dog
때문입니다. Animal
에서 상속됨 .
// Calling members of the Animal class
dog1.eat();
dog1.sleep();
<시간>
액세스 수정자 protected
C++ 상속과 관련하여 특히 관련이 있습니다.
private
처럼 회원, protected
멤버는 클래스 외부에서 액세스할 수 없습니다. 그러나 파생 클래스에서 액세스할 수 있습니다. 및 친구 수업/기능 .
protected
이 필요합니다. 클래스의 데이터를 숨기고 싶지만 해당 데이터가 파생 클래스에 상속되기를 원하는 경우 멤버를 선택합니다.
protected에 대해 자세히 알아보려면 C++ Access Modifiers 자습서를 참조하세요.
<시간>
// C++ program to demonstrate protected members
#include <iostream>
#include <string>
using namespace std;
// base class
class Animal {
private:
string color;
protected:
string type;
public:
void eat() {
cout << "I can eat!" << endl;
}
void sleep() {
cout << "I can sleep!" << endl;
}
void setColor(string clr) {
color = clr;
}
string getColor() {
return color;
}
};
// derived class
class Dog : public Animal {
public:
void setType(string tp) {
type = tp;
}
void displayInfo(string c) {
cout << "I am a " << type << endl;
cout << "My color is " << c << endl;
}
void bark() {
cout << "I can bark! Woof woof!!" << endl;
}
};
int main() {
// Create object of the Dog class
Dog dog1;
// Calling members of the base class
dog1.eat();
dog1.sleep();
dog1.setColor("black");
// Calling member of the derived class
dog1.bark();
dog1.setType("mammal");
// Using getColor() of dog1 as argument
// getColor() returns string data
dog1.displayInfo(dog1.getColor());
return 0;
}
출력
I can eat! I can sleep! I can bark! Woof woof!! I am a mammal My color is black
여기서 변수 type protected
입니다. 따라서 파생 클래스 Dog
에서 액세스할 수 있습니다. . type
을 초기화했을 때 이것을 볼 수 있습니다. Dog
setType()
함수를 사용하는 클래스 .
반면에 private
변수 색상 Dog
에서 초기화할 수 없습니다. .
class Dog : public Animal {
public:
void setColor(string clr) {
// Error: member "Animal::color" is inaccessible
color = clr;
}
};
또한 protected
이후 키워드가 데이터를 숨기므로 type에 액세스할 수 없습니다. Dog
개체에서 직접 또는 Animal
수업.
// Error: member "Animal::type" is inaccessible
dog1.type = "mammal";
<시간> 이전 자습서에서 public, private 및 protected와 같은 C++ 액세스 지정자에 대해 배웠습니다.
지금까지 public
을 사용했습니다. 기존 기본 클래스에서 클래스를 상속하기 위해 키워드를 사용합니다. 그러나 private
를 사용할 수도 있습니다. 및 protected
클래스를 상속하는 키워드. 예를 들어,
class Animal {
// code
};
class Dog : private Animal {
// code
};
class Cat : protected Animal {
// code
};
클래스를 파생할 수 있는 다양한 방법을 액세스 모드라고 합니다. . 이러한 액세스 모드는 다음과 같은 효과가 있습니다.
public
에 선언된 경우 모드에서 기본 클래스의 멤버는 그대로 파생 클래스에 상속됩니다.private
가 됩니다. 파생 클래스의 멤버입니다.public
기본 클래스의 멤버는 protected
가 됩니다. 파생 클래스의 멤버입니다.
private
기본 클래스의 멤버는 항상 private
입니다. 파생 클래스에서.
자세한 내용은 C++ 공개, 비공개, 보호 상속 자습서를 참조하세요.
<시간>기본 클래스와 파생 클래스에 이름과 인수가 같은 멤버 함수가 있다고 가정합니다.
파생 클래스의 개체를 만들고 해당 멤버 함수에 액세스하려고 하면 기본 클래스 대신 파생 클래스의 멤버 함수가 호출됩니다.
파생 클래스의 멤버 함수가 기본 클래스의 멤버 함수를 재정의합니다.
C++의 함수 재정의에 대해 자세히 알아보세요.
<시간>권장 자료: C++ 다중 상속
C 언어
C#에서 상속이란 무엇입니까? 상속 C#의 중요한 개념입니다. 상속은 부모 클래스와 자식 클래스를 정의하는 개념입니다. 자식 클래스는 부모 클래스의 메서드와 속성을 상속하지만 동시에 필요한 경우 메서드의 동작을 수정할 수도 있습니다. 자식 클래스는 필요한 경우 자체 메서드를 정의할 수도 있습니다. 이 C# 자습서에서는 다음을 배우게 됩니다. C#에서 상속이란 무엇입니까? C# 상속 예 C#의 다형성이란 무엇입니까? C# 다형성 예제 프로그램 예제를 통해 C# 상속에 대해 더 잘 이해해 보겠습니다. C# 상속 예제 이제 코
상속은 한 클래스가 다른 클래스의 속성(메서드 및 필드)을 획득하는 프로세스로 정의할 수 있습니다. 상속을 사용하면 정보를 계층적 순서로 관리할 수 있습니다. 다른 사람의 속성을 상속하는 클래스를 하위 클래스(파생 클래스, 자식 클래스)라고 하고 속성을 상속받는 클래스를 슈퍼 클래스(기본 클래스, 부모 클래스)라고 합니다. 확장 키워드 확장 클래스의 속성을 상속하는 데 사용되는 키워드입니다. 다음은 extends 키워드의 구문입니다. 구문 class Super { ..... ..... } class Sub ext