C 언어
이 자습서에서는 예제를 통해 C#의 봉인된 클래스와 메서드에 대해 알아봅니다.
C#에서 클래스가 다른 클래스에 상속되는 것을 원하지 않을 때 클래스를 봉인된 클래스로 선언할 수 있습니다. .
봉인된 클래스는 파생 클래스를 가질 수 없습니다. sealed
을 사용합니다. 봉인된 클래스를 만드는 키워드입니다. 예를 들어,
using System;
namespace SealedClass {
sealed class Animal {
}
// trying to inherit sealed class
// Error Code
class Dog : Animal {
}
class Program {
static void Main (string [] args) {
// create an object of Dog class
Dog d1 = new Dog();
Console.ReadLine();
}
}
}
위의 예에서는 봉인된 클래스 Animal을 만들었습니다. . 여기서는 Dog를 파생시키려고 합니다. 동물의 클래스 수업.
봉인된 클래스는 상속할 수 없으므로 프로그램에서 다음 오류를 생성합니다.
error CS0509: 'Dog': cannot derive from sealed type 'Animal'
<시간> 메서드 재정의 중에 재정의된 메서드가 다른 클래스에 의해 더 이상 재정의되지 않도록 하려면 이를 봉인된 메서드로 선언할 수 있습니다. .
sealed
을 사용합니다. 키워드를 재정의된 메서드와 함께 사용하여 봉인된 메서드를 만듭니다. 예를 들어,
using System;
namespace SealedClass {
class Animal {
public virtual void makeSound() {
Console.WriteLine("Animal Sound");
}
}
class Dog : Animal {
// sealed method
sealed public override void makeSound() {
Console.WriteLine("Dog Sound");
}
}
class Puppy : Dog {
// trying to override sealed method
public override void makeSound() {
Console.WriteLine("Puppy Sound");
}
}
class Program {
static void Main (string [] args) {
// create an object of Puppy class
Puppy d1 = new Puppy();
Console.ReadLine();
}
}
}
위의 예에서는 makeSound()를 재정의했습니다. Dog 내부의 메소드 수업.
// Inside the Dog class
sealed public override void makeSound() {
Console.WriteLine("Dog Sound");
}
sealed
을 사용했습니다. makeSound()가 있는 키워드 . 이것은 강아지를 의미합니다. Dog를 상속하는 클래스 클래스는 makeSound()를 재정의할 수 없습니다. .
따라서 오류가 발생합니다.
error CS0239: 'Puppy.makeSound()': cannot override inherited member 'Dog.makeSound()' because it is sealed
makeSound()를 추가로 재정의하려고 할 때 Puppy 내부의 메소드 수업.
참고 :재정의된 메서드를 봉인하면 다단계 상속에서 메서드 재정의를 방지할 수 있습니다.
<시간>1. 상속을 방지하기 위해 봉인된 클래스를 사용합니다. 봉인된 클래스에서 상속받을 수 없기 때문에 봉인된 클래스의 메서드는 다른 클래스에서 조작할 수 없습니다.
보안 문제를 방지하는 데 도움이 됩니다. 예를 들어,
sealed class A {
...
}
// error code
class B : A {
...
}
A 클래스로 상속할 수 없음, 클래스 B A 클래스의 메서드를 재정의하고 조작할 수 없습니다. .
2. 봉인된 클래스의 가장 좋은 용도 중 하나는 정적 멤버가 있는 클래스가 있는 경우입니다.
펜 System.Drawing
클래스 네임스페이스는 봉인된 클래스의 예 중 하나입니다. 펜 클래스에는 표준 색상으로 펜을 나타내는 정적 멤버가 있습니다. Pens.Blue
파란색 펜을 나타냅니다.
C 언어
C#의 직렬화 및 역직렬화 직렬화 및 역직렬화의 개념은 개체와 관련된 데이터를 한 응용 프로그램에서 다른 응용 프로그램으로 보내야 할 때마다 사용됩니다. 직렬화는 응용 프로그램 데이터를 파일로 내보내는 데 사용됩니다. 그런 다음 대상 응용 프로그램은 역직렬화를 사용하여 추가 사용을 위해 응용 프로그램에서 데이터를 추출합니다. 직렬화는 C# 클래스 개체가 파일에 작성되거나 직렬화되는 개념입니다. Tutorial이라는 C# 클래스가 있다고 가정해 보겠습니다. 그리고 클래스에는 ID와 Tutorials 이름의 2가지 속성이 있습니다.
OOP에서 추상화란 무엇입니까? 추상화 필수 속성만 보여주고 불필요한 정보를 숨긴다는 객체 지향 프로그래밍의 개념입니다. 추상화의 주요 목적은 사용자에게 불필요한 세부 사항을 숨기는 것입니다. 추상화는 더 큰 풀에서 데이터를 선택하여 사용자에게 개체의 관련 세부 정보만 표시하는 것입니다. 프로그래밍 복잡성과 노력을 줄이는 데 도움이 됩니다. OOP의 가장 중요한 개념 중 하나입니다. 동영상에 액세스할 수 없는 경우 여기를 클릭하십시오. 예를 들어 OOP에서 추상화를 연구해 보겠습니다. 은행 애플리케이션을 만들고 고객에