C 언어
이 자습서에서는 예제를 통해 C# 상속 및 해당 유형에 대해 알아봅니다.
C#에서 상속을 통해 기존 클래스에서 새 클래스를 만들 수 있습니다. 객체 지향 프로그래밍(OOP)의 핵심 기능입니다.
새 클래스가 생성되는 클래스를 기본 클래스(부모 또는 수퍼 클래스)라고 합니다. 그리고 새 클래스를 파생 클래스(자식 또는 하위 클래스)라고 합니다.
파생 클래스는 기본 클래스의 필드와 메서드를 상속합니다. 이것은 C#의 코드 재사용성에 도움이 됩니다.
<시간>
C#에서는 :
을 사용합니다. 상속을 수행하는 기호입니다. 예를 들어,
class Animal {
// fields and methods
}
// Dog inherits from Animal
class Dog : Animal {
// fields and methods of Animal
// fields and methods of Dog
}
여기에서 파생 클래스 Dog를 상속합니다. 기본 클래스 동물에서 . 개 클래스는 이제 Animal의 필드와 메서드에 액세스할 수 있습니다. 클래스.<그림>
<시간>
using System;
namespace Inheritance {
// base class
class Animal {
public string name;
public void display() {
Console.WriteLine("I am an animal");
}
}
// derived class of Animal
class Dog : Animal {
public void getName() {
Console.WriteLine("My name is " + name);
}
}
class Program {
static void Main(string[] args) {
// object of derived class
Dog labrador = new Dog();
// access field and method of base class
labrador.name = "Rohu";
labrador.display();
// access method from own class
labrador.getName();
Console.ReadLine();
}
}
}
출력
I am an animal My name is Rohu
위의 예에서 Dog 하위 클래스를 파생했습니다. 슈퍼클래스 동물에서 . 진술에 주목하십시오.
labrador.name = "Rohu";
labrador.getName();
여기에서는 labrador를 사용하고 있습니다. (Dog의 객체) name에 액세스 및 디스플레이() 동물 수업. 이는 파생 클래스가 기본 클래스의 모든 필드와 메서드를 상속하기 때문에 가능합니다.
또한 name에 액세스했습니다. Dog 메소드 내부의 필드 수업.
<시간>C#에서 상속은 is-관계입니다. 두 클래스 사이에 is-관계가 있는 경우에만 상속을 사용합니다. 예를 들어,
개를 파생할 수 있습니다. 동물 수업. 마찬가지로 애플 과일 클래스 및 자동차 차량에서 수업.
<시간>
필드 또는 메소드를 protected
로 선언할 때 , 동일한 클래스와 파생 클래스에서만 액세스할 수 있습니다.
using System;
namespace Inheritance {
// base class
class Animal {
protected void eat() {
Console.WriteLine("I can eat");
}
}
// derived class of Animal
class Dog : Animal {
static void Main(string[] args) {
Dog labrador = new Dog();
// access protected method from base class
labrador.eat();
Console.ReadLine();
}
}
}
출력
I can eat
위의 예에서 Animal이라는 클래스를 만들었습니다. . 클래스에는 보호된 메서드 eat()가 포함되어 있습니다. .
우리는 Dog를 파생했습니다. 동물의 클래스 수업. 진술을 주목하십시오.
labrador.eat();
protected
이후 메서드는 파생 클래스에서 액세스할 수 있으며 eat()에 액세스할 수 있습니다. Dog의 메소드 수업.
다음과 같은 유형의 상속이 있습니다.
단일 상속에서 단일 파생 클래스는 단일 기본 클래스에서 상속됩니다.
<그림>다단계 상속에서 파생 클래스는 기본에서 상속한 다음 동일한 파생 클래스가 다른 클래스의 기본 클래스 역할을 합니다.
<그림>계층적 상속에서 여러 파생 클래스는 단일 기본 클래스에서 상속됩니다.
<그림>다중 상속에서 단일 파생 클래스는 여러 기본 클래스에서 상속됩니다. C#은 다중 상속을 지원하지 않습니다. 그러나 인터페이스를 통해 다중 상속을 달성할 수 있습니다.
<그림>하이브리드 상속은 두 가지 이상의 상속 유형을 조합한 것입니다. 다단계 상속과 계층 상속의 조합은 하이브리드 상속의 한 예입니다.
<그림> <시간>기본 클래스와 파생 클래스 모두에 동일한 메서드가 있는 경우 파생 클래스의 메서드가 기본 클래스의 메서드를 재정의합니다. 이것을 C#에서는 메서드 재정의라고 합니다. 예를 들어,
using System;
namespace Inheritance {
// base class
class Animal {
public virtual void eat() {
Console.WriteLine("I eat food");
}
}
// derived class of Animal
class Dog : Animal {
// overriding method from Animal
public override void eat() {
Console.WriteLine("I eat Dog food");
}
}
class Program {
static void Main(string[] args) {
// object of derived class
Dog labrador = new Dog();
// accesses overridden method
labrador.eat();
}
}
}
출력
I eat Dog food
위의 예에서 eat() 메서드는 기본 클래스와 파생 클래스 모두에 있습니다.
eat()를 호출할 때 개 사용 개체 래브라도 ,
labrador.eat();
Dog 내부의 메소드 라고 합니다. 이는 Dog 내부의 메소드 때문입니다. Animal 내에서 동일한 메서드를 재정의합니다. .
virtual
를 사용했습니다. 및 재정의 각각 기본 클래스와 파생 클래스의 메서드를 사용합니다. 여기,
virtual
- 파생 클래스에서 메서드를 재정의할 수 있습니다.override
- 메서드가 기본 클래스의 메서드를 재정의하고 있음을 나타냅니다.이전 예제에서 파생 클래스의 메서드가 기본 클래스의 메서드를 재정의하는 것을 보았습니다.
하지만 기본 클래스의 메서드도 호출하려면 어떻게 해야 하나요?
이 경우 base
을 사용합니다. 파생 클래스에서 기본 클래스의 메서드를 호출하는 키워드입니다.
using System;
namespace Inheritance {
// base class
class Animal {
public virtual void eat() {
Console.WriteLine("Animals eat food.");
}
}
// derived class of Animal
class Dog : Animal {
// overriding method from Animal
public override void eat() {
// call method from Animal class
base.eat();
Console.WriteLine("Dogs eat Dog food.");
}
}
class Program {
static void Main(string[] args) {
Dog labrador = new Dog();
labrador.eat();
}
}
}
출력
Animals eat food. Dogs eat Dog food.
위의 예에서 eat() 메소드는 기본 클래스 Animal 모두에 있습니다. 파생 클래스 Dog . 진술을 주목하십시오.
base.eat();
여기에서는 base
을 사용했습니다. Animal 메소드에 접근하는 키워드 Dog의 클래스 수업.
상속의 중요성을 이해하기 위해 상황을 고려해 보겠습니다.
정사각형, 직사각형 등과 같은 정다각형으로 작업한다고 가정합니다. 그리고 입력을 기반으로 이 다각형의 둘레를 찾아야 합니다.
1. 둘레를 계산하는 공식은 모든 정다각형에 공통이므로 RegularPolygon을 만들 수 있습니다. 클래스 및 메소드 calculatePerimeter() 둘레를 계산합니다.
class RegularPolygon {
calculatePerimeter() {
// code to compute perimeter
}
}
2. 그리고 Square 상속 및 사각형 RegularPolygon의 클래스 수업. 이러한 각 클래스에는 모든 다각형에 대해 다르기 때문에 길이와 변의 수를 저장하는 속성이 있습니다.
class Square : RegularPolygon {
int length = 0;
int sides = 0;
}
length 값을 전달합니다. 및 측면 calculateperimeter() 둘레를 계산합니다.
이것이 상속을 통해 코드를 재사용 가능하고 직관적으로 만드는 방법입니다.
using System;
namespace Inheritance {
class RegularPolygon {
public void calculatePerimeter(int length, int sides) {
int result = length * sides;
Console.WriteLine("Perimeter: " + result);
}
}
class Square : RegularPolygon {
public int length = 200;
public int sides = 4;
public void calculateArea() {
int area = length * length;
Console.WriteLine("Area of Square: " + area);
}
}
class Rectangle : RegularPolygon {
public int length = 100;
public int breadth = 200;
public int sides = 4;
public void calculateArea() {
int area = length * breadth;
Console.WriteLine("Area of Rectangle: " + area);
}
}
class Program {
static void Main(string[] args) {
Square s1 = new Square();
s1.calculateArea();
s1.calculatePerimeter(s1.length, s1.sides);
Rectangle t1 = new Rectangle();
t1.calculateArea();
t1.calculatePerimeter(t1.length, t1.sides);
}
}
}
출력
Area of Square: 40000 Perimeter: 800 Area of Rectangle: 20000 Perimeter: 400
위의 예에서는 RegularPolygon을 만들었습니다. 정다각형의 둘레를 계산하는 메소드가 있는 클래스입니다.
여기서 사각형 및 사각형 RegularPolygon에서 상속 .
둘레를 계산하는 공식은 모두에게 공통적이므로 calculatePerimeter()를 재사용했습니다. 기본 클래스의 메서드입니다.
그리고 면적을 계산하는 공식이 모양마다 다르기 때문에 파생 클래스 내부에 면적을 계산하는 별도의 메소드를 만들었습니다.
C 언어
C#에서 상속이란 무엇입니까? 상속 C#의 중요한 개념입니다. 상속은 부모 클래스와 자식 클래스를 정의하는 개념입니다. 자식 클래스는 부모 클래스의 메서드와 속성을 상속하지만 동시에 필요한 경우 메서드의 동작을 수정할 수도 있습니다. 자식 클래스는 필요한 경우 자체 메서드를 정의할 수도 있습니다. 이 C# 자습서에서는 다음을 배우게 됩니다. C#에서 상속이란 무엇입니까? C# 상속 예 C#의 다형성이란 무엇입니까? C# 다형성 예제 프로그램 예제를 통해 C# 상속에 대해 더 잘 이해해 보겠습니다. C# 상속 예제 이제 코
상속은 한 클래스가 다른 클래스의 속성(메서드 및 필드)을 획득하는 프로세스로 정의할 수 있습니다. 상속을 사용하면 정보를 계층적 순서로 관리할 수 있습니다. 다른 사람의 속성을 상속하는 클래스를 하위 클래스(파생 클래스, 자식 클래스)라고 하고 속성을 상속받는 클래스를 슈퍼 클래스(기본 클래스, 부모 클래스)라고 합니다. 확장 키워드 확장 클래스의 속성을 상속하는 데 사용되는 키워드입니다. 다음은 extends 키워드의 구문입니다. 구문 class Super { ..... ..... } class Sub ext