c# 기본 언어 프로그래밍 - 멀티태스킹

8017 단어 이음매다태
언어 중의 다태성은 프로그램을 확장시키기 위한 것이고 다태성을 실현하기 위해 프로그램에서 인터페이스, 추상류, 부류, 구체류로 나타난다.인터페이스는 일종의 규범으로 다중 계승 문제를 해결했다. 예를 들어 규범과 같이 나에게 무엇을 해야 하는지, 어떤 능력을 가지고 있는지 알려주고 인터페이스에서 쓰기 행위 속성을 정의한다.
인터페이스의 특성
  • 인터페이스 클래스는 추상 클래스와 유사하여 실례화 인터페이스를 할 수 없다.인터페이스의 방법은 모두 추상적인 방법이다. 이 인터페이스에 계승된 비추상류는 인터페이스의 모든 구성원을 실현해야 한다.
  • 인터페이스는 방법(속성, 이벤트, 색인기는 최종적으로 방법)만 포함할 수 있고 필드, 상량, 구조 함수와 분석 함수, 정적 변수는 없지만 의뢰와 이벤트가 있을 수 있다.
  • 인터페이스에 있는 구성원은 액세서리에 접근할 수 없습니다. 기본값은public이고 수동으로 추가하면 오류가 발생합니다.인터페이스에서 구성원은 정의만 있고 실현이 없다. 추상류처럼
  • 인터페이스를 실현하는 유형은 인터페이스에 있는 방법을 직접 실현하고 오버라이드를 쓰지 않는다.
  • 이 인터페이스의 구성원을 표시할 때 실례 구성원은 클래스 실례를 통해 접근할 수 없다(클래스 실례로 접근하는 것을 제창하지 않으면 다태성을 나타낼 수 없다). 인터페이스 실례를 통해서만 접근할 수 있고 기본값은private이다.인터페이스 구성원을 암시하면 두 가지 실례가 모두 접근할 수 있지만 구성원을 퍼블릭으로 표시해야 한다.예:
  •    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. 철문목문이 모두 문(추상류)인 것처럼 네가 문을 원한다면 나는 줄 수 없다(실례화할 수 없다). 그러나 나는 너에게 구체적인 철문이나 목문(다태적)을 줄 수 있다.그리고 문밖에 없어요. 창문이라고 하면 안 돼요.한 문에 자물쇠가 있을 수도 있고 초인종이 있을 수도 있다.문(추상류)은 당신이 무엇인지를 정의하고, 인터페이스(자물쇠)는 당신이 무엇을 할 수 있는지를 규정한다. (인터페이스는 한 가지 일만 할 수 있고, 자물쇠를 요구할 수도 없고, 소리를 낼 수도 있다(인터페이스 오염).언제 인터페이스로 다태를 실현합니까?답: 여러 유형이 합리적인 부류를 추상화할 수 없을 때 몇 가지 방법을 다태적으로 해야 하기 때문에 이때는 인터페이스를 고려할 수 있다.공공적인 방법을 하나의 인터페이스로 추상화하다.프로그램 설계의 원칙(자신의 수업 결과)
  • 인터페이스 추상 클래스 '부류' 구체 클래스 (정의 방법 매개 변수,. 반환값, 성명 변수를 사용할 때 추상 클래스를 사용할 수 있다면 구체적인 매개 변수를 사용하지 마십시오.
  • 인터페이스를 사용할 수 있으면 추상류를 사용하지 말고, 추상류를 사용할 수 있으면 클래스를 사용하지 말고, 부류를 사용할 수 있으면 자류를 사용하지 마라.
  • 부피가 큰 인터페이스 다기능 인터페이스를 사용하지 않으면 인터페이스 오염을 초래할 수 있다.
  • 단일 직책, 개방 폐쇄, 리씨 교체, 인터페이스 격리, 의존 인터페이스
  • 좋은 웹페이지 즐겨찾기