c# 기본 언어 프로그래밍 - 멀티태스킹
인터페이스의 특성
public class Person : IFace1, IFace2
{
public void Fly()
{
Console.WriteLine(" IFace1 Fly 。");
}
// , private
// 。
void IFace2.Fly()
{
Console.WriteLine(" IFace2 Fly 。");
}
}
public interface IFace1
{
void Fly();
}
public interface IFace2
{
void Fly();
}
Person p = new Person();
p.Fly();//face1 Fly()face2 , private, new Person 。
IFace1 f1 = new Person();
f1.Fly();//face1 Fly()
IFace2 f2 = new Person();
f2.Fly();//face2 Fly()
virtual과override의 응용 virtual은 허함수 키워드이고 override는 다시 쓰는 키워드입니다.가상 키워드가 있습니다. 상속자가 오버라이드로 다시 쓸 수 있도록 합니다.오버라이드를 사용하지 않으면 다시 쓰는 것이 아니다.예를 들면 다음과 같습니다.
class Person
{
public virtual void Introduce()
{
Console.WriteLine(" ");
}
}
class Chinese : Person
{
public override void Introduce()
{
Console.WriteLine(" , ");
}
}
class American : Person
{
// override, 。
public void Introduce()
{
Console.WriteLine(" :00000");
}
}
Person p1 = new Chinese(); p1.Introduce(); Person p2 = new American(); p2.Introduce();
내 호적, 신분증 번호가 표시됩니다.저는 지구에서 왔어요.
추상적인 클래스가 인터페이스를 실현할 때 인터페이스 구성원을 실현하지 않으려면 구성원을 abstract로 실현할 수 있다.왜 인터페이스의 방법의 수식자를 지정할 수 없습니까?인터페이스의 방법은 대상 간의 통신 계약을 정의하는 데 사용되며, 인터페이스의 방법을 사유나 보호로 지정하는 것은 무의미하다.그것들은 기본적으로 공유 방법이다.
추상류
추상류는 추상적인 방법을 포함하는 류다.그렇다면 추상적인 방법은 무엇일까?추상적인 방법은 방법 내용이 없고 방법 이름과 매개 변수 목록만 있는 방법이다.아울러결말그의 남다른 점을 표시하기 위해서, 그의 귀환 유형에 abstract를 추가합니다.클라스 앞에 abstract를 넣습니다.간단히 말하면 abstract로 수식된 방법과 클래스는 추상적인 방법과 클래스이다.
// State, Context
abstract class State
{
public abstract void Handle(Context context);
}
//ConcreteState , , Context
class ConcreteStateA : State
{
public override void Handle(Context context)
{
// ConcreteStateA ConcreteStateB
context.State = new ConcreteStateB();
}
}
class ConcreteStateB : State
{
public override void Handle(Context context)
{
// ConcreteStateB ConcreteStateA
context.State = new ConcreteStateA();
}
}
추상류는 실례화할 수 없고 파생류가 추상적인 방법을 계승함으로써 실현해야 하기 때문에 추상류에 대해서는 new 키워드를 사용할 수 없고 밀봉될 수 없다.만약 파생류가 모든 추상적인 방법을 실현하지 못한다면, 이 파생류도 반드시 추상류라고 성명해야 한다.또한 추상적인 방법을 실현하는 것은 오버라이드 방법으로 이루어진다.인터페이스와 추상류의 공통점: 1. 실례화할 수 없다.2. 실현되지 않은 방법 성명을 포함한다.3. 파생류는 반드시 실현되지 않은 방법을 실현해야 한다. 추상류는 추상적인 방법이고 인터페이스는 모든 구성원(방법은 다른 구성원을 포함할 뿐만 아니라)이다.인터페이스와 추상류의 차이클래스는 대상에 대한 추상으로 추상류를 대상으로 이해할 수 있으며 추상적인 클래스를 추상류라고 부른다.인터페이스는 하나의 행위의 규범이나 규정일 뿐이다.인터페이스는 기본적으로 계승의 어떤 구체적인 특징도 갖추지 못하고 호출할 수 있는 방법만 약속했다.3. 하나의 클래스는 한 번에 몇 개의 인터페이스를 실현할 수 있지만 하나의 부류만 확장할 수 있다.인터페이스는 리셋을 지원하는 데 사용할 수 있지만, 계승은 이런 특징을 갖추지 못한다.5. 추상류는 밀봉할 수 없다.6. 추상적 클래스가 실현되는 구체적인 방법은 기본적으로 허로 되어 있지만 인터페이스를 실현하는 클래스의 인터페이스 방법은 비허로 되어 있다. 물론 당신도 허로 성명할 수 있다.7. (인터페이스)는 비추상적인 클래스와 유사하며, 추상적인 클래스도 해당 클래스의 기본 클래스 목록에 열거된 인터페이스의 모든 구성원에게 자신의 실현을 제공해야 한다.그러나 추상류가 인터페이스 방법을 추상법에 비추도록 허용한다.8. 추상류는 oop의 원칙을 실현하여 가변적인 것과 불가변한 것을 분리한다.추상류와 인터페이스는 변할 수 없는 것으로 정의하고 변할 수 있는 좌석 부류를 실현하는 것이다.9. 좋은 인터페이스 정의는 다기능적인 것이 아니라 전문적인 기능성을 가져야 한다. 그렇지 않으면 인터페이스 오염을 초래할 수 있다.만약에 하나의 종류가 이 인터페이스의 한 기능만 실현했을 뿐 인터페이스 중의 다른 방법을 실현하지 않으면 인터페이스 오염이라고 한다.10. 상속을 이용하여 구성 기능을 실현하는 것을 최대한 피하고 블랙박스 복용, 즉 대상 조합을 사용한다.상속의 차원이 증가하기 때문에 가장 직접적인 결과는 바로 당신이 이 그룹 중의 어떤 종류를 호출하면 반드시 그들을 모두 창고에 불러와야 한다는 것이다!결과는 가히 짐작할 수 있다.(창고 원리와 결합하여 이해한다).또한 마이크로소프트가 하나의 클래스를 구축할 때 대상 조합의 방법을 많이 사용했다는 것을 유심히 알 수 있다.예컨대 asp.net의 Page 클래스에는 Server Request 등의 속성이 있지만 이러한 속성은 모두 클래스의 객체입니다.Page 클래스의 이 객체를 사용하여 다른 클래스의 방법과 속성을 호출하는 것은 매우 기본적인 설계 원칙이다.11. 추상류가 인터페이스를 실현한다면 인터페이스의 방법을 추상류에 비추어 추상적인 방법으로 실현할 필요가 없고 추상류의 자류에서 인터페이스의 방법을 실현할 수 있다.12. 인터페이스 정의 방법은 실현할 수 없고 추상류는 일부 방법을 실현할 수 있다.13. 인터페이스의 기본 데이터 형식은static이고 추출 이미지는 아닙니다.추상류의 기능은 인터페이스를 훨씬 초과하지만 추상류를 정의하는 대가가 높다.고급 언어로 말하자면 (실제 디자인에서도) 모든 종류는 하나의 종류만 계승할 수 있기 때문이다.이 클래스에서, 너는 모든 하위 클래스의 공통성을 계승하거나 작성해야 한다.비록 인터페이스는 기능적으로 많이 약화되지만, 그것은 단지 하나의 동작에 대한 묘사일 뿐이다.그리고 너는 한 종류에서 여러 인터페이스를 동시에 실현할 수 있다.설계 단계에서 난이도를 낮출 수 있다.추상류와 인터페이스를 어떻게 이해합니까?비행기는 날 수 있고 새는 날 수 있다. 그들은 모두 같은 인터페이스인'날기'를 계승했다.그러나 F22는 항공기 추상류, 비둘기는 새 추상류에 속한다.2. 철문목문이 모두 문(추상류)인 것처럼 네가 문을 원한다면 나는 줄 수 없다(실례화할 수 없다). 그러나 나는 너에게 구체적인 철문이나 목문(다태적)을 줄 수 있다.그리고 문밖에 없어요. 창문이라고 하면 안 돼요.한 문에 자물쇠가 있을 수도 있고 초인종이 있을 수도 있다.문(추상류)은 당신이 무엇인지를 정의하고, 인터페이스(자물쇠)는 당신이 무엇을 할 수 있는지를 규정한다. (인터페이스는 한 가지 일만 할 수 있고, 자물쇠를 요구할 수도 없고, 소리를 낼 수도 있다(인터페이스 오염).언제 인터페이스로 다태를 실현합니까?답: 여러 유형이 합리적인 부류를 추상화할 수 없을 때 몇 가지 방법을 다태적으로 해야 하기 때문에 이때는 인터페이스를 고려할 수 있다.공공적인 방법을 하나의 인터페이스로 추상화하다.프로그램 설계의 원칙(자신의 수업 결과)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
의아하게도 아버지 대상의 인터페이스도 대상에게 물려받는다앞에서 우리가 이미 보았듯이 인터페이스는 능력이고 증서이며 인터페이스가 없는 대상은 좋은 대상이 아니다. 그러면 어떤 대상들은 어떤 인터페이스도 실현하지 못했지만 그들은 여전히 좋은 대상이다. 왜?그들은 아버지의 대...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.