C 언어
이 자습서에서는 예제를 통해 C# 추상 클래스와 메서드에 대해 알아봅니다.
C#에서는 추상 클래스의 개체를 만들 수 없습니다. abstract
을 사용합니다. 추상 클래스를 생성하는 키워드. 예를 들어,
// create an abstract class
abstract class Language {
// fields and methods
}
...
// try to create an object Language
// throws an error
Language obj = new Language();
추상 클래스에는 추상 메서드(본문 없는 메서드)와 비추상 메서드(본문 있는 메서드)가 모두 있을 수 있습니다. 예를 들어,
abstract class Language {
// abstract method
public abstract void display1();
// non-abstract method
public void display2() {
Console.WriteLine("Non abstract method");
}
}
계속 진행하기 전에 C# 상속에 대해 알아야 합니다.
<시간>추상 클래스의 객체를 만들 수 없으므로 파생 클래스를 만들어야 합니다. 파생 클래스의 개체를 사용하여 추상 클래스의 멤버에 액세스할 수 있습니다. 예를 들어,
using System;
namespace AbstractClass {
abstract class Language {
// non-abstract method
public void display() {
Console.WriteLine("Non abstract method");
}
}
// inheriting from abstract class
class Program : Language {
static void Main (string [] args) {
// object of Program class
Program obj = new Program();
// access method of an abstract class
obj.display();
Console.ReadLine();
}
}
}
출력
Non abstract method
위의 예에서 Language라는 추상 클래스를 만들었습니다. . 클래스에 비추상 메서드 display()가 포함되어 있습니다. .
프로그램을 만들었습니다. 추상 클래스를 상속하는 클래스. 진술을 주목하십시오.
obj.display();
여기, obj 파생 클래스 Program의 개체입니다. . obj 개체를 사용하여 추상 클래스의 메서드를 호출합니다. .
참고 :추상 클래스는 기본 클래스로만 사용할 수 있습니다. 이것이 추상 클래스를 봉인할 수 없는 이유입니다. 자세한 내용은 C# 봉인된 클래스 및 메서드를 참조하세요.
<시간>
본문이 없는 메서드를 추상 메서드라고 합니다. abstract
를 사용합니다. 추상 메서드를 만드는 키워드입니다. 예를 들어,
public abstract void display();
여기서 display() 추상적인 방법이다. 추상 메소드는 추상 클래스 내부에만 존재할 수 있습니다.
비추상 클래스가 추상 클래스를 상속할 때 추상 메소드의 구현을 제공해야 합니다.
using System;
namespace AbstractClass {
abstract class Animal {
// abstract method
public abstract void makeSound();
}
// inheriting from abstract class
class Dog : Animal {
// provide implementation of abstract method
public override void makeSound() {
Console.WriteLine("Bark Bark");
}
}
class Program {
static void Main (string [] args) {
// create an object of Dog class
Dog obj = new Dog();
obj.makeSound();
Console.ReadLine();
}
}
}
출력
Bark Bark
위의 예에서 Animal이라는 추상 클래스를 만들었습니다. . 추상 메소드 makeSound()가 있습니다. 클래스 내부.
개가 있습니다. Animal에서 상속되는 클래스 수업. 개 클래스는 추상 메서드 makeSound()의 구현을 제공합니다. .
// provide implementation of abstract method
public override void makeSound() {
Console.WriteLine("Bark Bark");
}
override
를 사용했습니다. makeSound() 방법. 이는 메서드가 기본 클래스의 메서드를 재정의하고 있음을 나타냅니다.
그런 다음 Dog 개체를 사용했습니다. makeSound()에 접근하는 클래스 .
개 클래스가 추상 메서드 makeSound()의 구현을 제공하지 않았습니다. , 개 클래스도 추상으로 표시되어야 합니다.
참고 :C# 상속과 달리 virtual
을 사용할 수 없습니다. 기본 클래스의 추상 메서드를 사용합니다. 이는 추상 클래스가 암시적으로 가상이기 때문입니다.
get 및 set 접근자를 추상으로 표시할 수 있습니다. 예를 들어,
using System;
namespace AbstractClass {
abstract class Animal {
protected string name;
// abstract method
public abstract string Name {
get;
set;
}
}
// inheriting from abstract class
class Dog : Animal {
// provide implementation of abstract method
public override string Name {
get {
return name;
}
set {
name = value;
}
}
}
class Program {
static void Main (string [] args) {
// create an object of Dog class
Dog obj = new Dog();
obj.Name = "Tom";
Console.WriteLine("Name: " + obj.Name);
Console.ReadLine();
}
}
}
출력
Name: Tom
위의 예에서 get 및 set 접근자를 추상으로 표시했습니다.
obj.Name = "Tom";
Console.WriteLine("Name: " + obj.Name);
name 값을 설정하고 가져옵니다. 추상 클래스 Animal 필드 파생 클래스 Dog의 개체 사용 .
<시간>추상 클래스도 생성자를 가질 수 있습니다. 예를 들어,
using System;
namespace AbstractClass {
abstract class Animal {
public Animal() {
Console.WriteLine("Animal Constructor");
}
}
class Dog : Animal {
public Dog() {
Console.WriteLine("Dog Constructor");
}
}
class Program {
static void Main (string [] args) {
// create an object of Dog class
Dog d1 = new Dog();
Console.ReadLine();
}
}
}
출력
Animal Constructor Dog Constructor
위의 예에서 추상 클래스 Animal 내부에 생성자를 만들었습니다. .
Dog d1 = new Dog();
여기에서 파생 클래스 Dog의 개체를 만들 때 추상 클래스 Animal의 생성자 도 호출됩니다.
참고 :추상 클래스 내에서 소멸자를 사용할 수도 있습니다.
<시간>추상 클래스는 C#에서 추상화를 달성하는 데 사용됩니다.
추상화는 객체 지향 프로그래밍의 중요한 개념 중 하나입니다. 불필요한 세부 정보를 숨기고 필요한 정보만 표시할 수 있습니다.
이렇게 하면 더 간단하고 높은 수준의 아이디어로 세부 사항을 숨김으로써 복잡성을 관리하는 데 도움이 됩니다.
추상화의 실제 예는 오토바이 브레이크가 될 수 있습니다. 우리는 브레이크가 하는 일을 알고 있습니다. 브레이크를 밟으면 오토바이가 멈춥니다. 그러나 브레이크의 작동은 우리에게 숨겨져 있습니다.
브레이크 작동을 숨김으로써 얻을 수 있는 주요 이점은 이제 제조업체가 오토바이마다 브레이크를 다르게 구현할 수 있다는 것입니다. 그러나 브레이크가 하는 일은 동일할 것입니다.
using System;
namespace AbstractClass {
abstract class MotorBike {
public abstract void brake();
}
class SportsBike : MotorBike {
// provide implementation of abstract method
public override void brake() {
Console.WriteLine("Sports Bike Brake");
}
}
class MountainBike : MotorBike {
// provide implementation of abstract method
public override void brake() {
Console.WriteLine("Mountain Bike Brake");
}
}
class Program {
static void Main (string [] args) {
// create an object of SportsBike class
SportsBike s1 = new SportsBike();
s1.brake();
// create an object of MountainBike class
MountainBike m1 = new MountainBike();
m1.brake();
Console.ReadLine();
}
}
}
출력
Sports Bike Brake Mountain Bike Brake
위의 예에서 추상 클래스 MotorBike를 만들었습니다. . 추상 메소드 brake()가 있습니다. .
brake()로 brake()의 구현인 추상 메소드입니다. 모터바이크에서 숨겨져 있습니다.
모든 오토바이에는 브레이크의 구현이 다릅니다. 이것이 SportsBike가 brake() 자체 구현 및 마운틴바이크 brake() 자체 구현 .
참고 :인터페이스를 사용하여 C#에서 완전한 추상화를 달성합니다. 자세히 알아보려면 C# 인터페이스를 방문하세요.
C 언어
OOP에서 추상화란 무엇입니까? 추상화 필수 속성만 보여주고 불필요한 정보를 숨긴다는 객체 지향 프로그래밍의 개념입니다. 추상화의 주요 목적은 사용자에게 불필요한 세부 사항을 숨기는 것입니다. 추상화는 더 큰 풀에서 데이터를 선택하여 사용자에게 개체의 관련 세부 정보만 표시하는 것입니다. 프로그래밍 복잡성과 노력을 줄이는 데 도움이 됩니다. OOP의 가장 중요한 개념 중 하나입니다. 동영상에 액세스할 수 없는 경우 여기를 클릭하십시오. 예를 들어 OOP에서 추상화를 연구해 보겠습니다. 은행 애플리케이션을 만들고 고객에
자바에서 추상화란 무엇입니까? JAVA의 추상화 필수 속성만 표시하고 사용자에게 개체의 불필요한 세부 정보를 숨깁니다. Java에서 추상화는 Abstract 클래스, Abstract 메서드 및 인터페이스를 사용하여 수행됩니다. 추상화는 프로그래밍 복잡성과 노력을 줄이는 데 도움이 됩니다. 이 튜토리얼에서는 배우게 될 것입니다- 추상 클래스란 무엇입니까? 추상 방법이란 무엇입니까? 추상화 코드 예 자바의 추상 클래스 자바의 최종 키워드 추상 클래스란 무엇입니까? 추상 클래스 하나 이상의 추상 메소드를 선언하는 Java의 클