추상 클래스의 예는 무엇인가! 의 추상적 추상적하게하지 말자! !

더 어려운 추상 클래스는 그가 너무 추상적했다 아마도 때문에 이유를 이해하기 위해, 하, 하, 말도 안되는 것 같습니다. .

긴의 개념 전에이 추상 클래스를 알고,하지만 문제에 얽혀되었지만 : 결국 추상 클래스를 사용하면 실제 개발 과정에서 사용되는 울 있나요? ?

그래서, 오늘은 실제 개발에 완전히 분명이 사람의 역할에, 예를 원한다! !

 

나는 던전 유령 검객 플레이어가 있다면, 당신은 다음과 같은 기능을 할 수있다 :

1, 내 유령 검객은 한 번 만 기술을 넣어

2, 유령 검객은 내가 가진 능력을 많이

3, 핵심 기술, 내가 할 수 해제하도록 선택할 어떤 능력을

4, 나는 기술을 Daguai 수 있습니다 (기술 Daguai 출시 사운드)

 

첫 번째보기는 추상 클래스의 구현을 필요로하지 않습니다 :

1 단계 : 기술! !

나는 이제이 두 기술을 정의하는 두 가지 기술이 (가) (위)의 선택과 유령 컷 (킬)가되어 있습니다, 지금 레벨 5 가정 :

    공공  클래스 까지 
    { 
        공공  무효 말하기 () 
        { 
            // 소리 픽업 
            Console.WriteLine ( " 이봐! " ); 
        } 
    } 

    공용  클래스 
    { 
        공공  무효 말하기는 () 
        { 
// 유령 사운드 잘라 Console.WriteLine (
" 하 ! " ) } }

파트 II : 정의의 유령 검객! !

역할의 무리, 서로 다른 역할은 유령 병사를 만들기 위해 잘라 도전과 유령을 만나고, 거리에서 서로 다른 특성을 가지고 있으므로.

    공공  클래스 검객 
    { 
        // 두 기술에 해당하는 
        개인 , 최대까지
         개인 킬 (kill) 죽여; 

        // 해제 할 기술 선택 
        공공  무효 선택 ( 개체 기술을) 
        { 
            경우 (스킬 입니다 위) 
            { 
                최대 = (위) 기술을, 
                킬 (kill) = 널 (null)을 ; 
            } 
            다른 
            { 
                킬 (kill) = (킬) 기술, 
                최대 = 널 (null) ; 
            }
        } 

        // 다른 기술이 다른 사운드 릴리스에 해당 해제 
        공공  무효 ) 히트 ( 
        { 
            Console.WriteLine ( " 시작 Daguai을! " );
             IF (킬 (kill) == null이 ) 
            { 
                up.Speak를 (); 
            } 
            다른 사람을 
            { 
                킬 (kill) .Speak () 
            } 
        } 
    }

제 III 부 : 거리에 유령 검객의 전체 유령 검객의 예는, 제 이름은 내 유령 유령 검객 검객 유일한 ID입니다.

    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            // 유령 검객 아사히 아사히 아기의 인스턴스 
            검객 xuxubaobao = 새로운 새로운 검객 ();
             // 선택하고 밖으로 방출하여 아사히 아사히 아기의 선택을 
            xuxubaobao.Select을 ( 새로운 새로운 업 ()); 
            xuxubaobao.Hit (); 
            // 아사히 아사히 아기 선택 유령 잘라 놓아 
            xuxubaobao.Select을 ( 새로운 새로운 킬 ()); 
            xuxubaobao.Hit (); 
        } 
    }

문제 없습니다, 모든 것이 너무 아름다워입니다! ! 거물 재미 있고, 우리 프로그래머는 미소를 지었다.

그러나! ! 선수들이 현지 폭군이며, 즉시 10로 상승하기 때문에, 상사는 새로운 기술의 붕괴 일 파업 (노크)를 추가 할 프로그래머를 촉구했다.

나는 할머니, 아니 문제는, 그들이 참여하기 시작 생각했다.

다음은 프로세스의 수정입니다 :

첫 번째 단계 :

당연히, 우리는 새로운 수준의 기술을 붕괴 하루 파업을 정의 (노크)

    공공  클래스 노크 
    { 
        공공  무효 말하기 () 
        { 
            // 축소 일 사운드 히트 
            (Console.WriteLine을 " 오, 그래! " ); 
        } 
    }

파트 II :

당연히, 우리는 검객 클래스를 수정하는

    공공  클래스 검객 
    { 
        // 두 기술에 해당하는 
        개인 , 최대까지
         개인 킬 (kill)을 죽이고,
         개인 노크 노크;
         // 해제 할 기술 선택 
        공공  무효 선택 ( 개체 기술을) 
        { 
            경우 (스킬 입니다 위) 
            { 
                최대 = (위) 기술 ; 
                킬 (kill) = ; 
                노크 = 널 (null) ; 
            } 
            다른  IF  
            {
                킬 (kill)가= (킬) 기술, 
                최대 = ; 
                konck = 널 (null) ; 
            } 
            다른 
            { 
                konck = (konck) 기술, 
                최대 = ; 
                킬 (kill) = 널 (null) ; 
            } 
        } 

        // 다른 기술이 다른 사운드 릴리스에 해당 해제 
        공공  무효 (히트 ) 
        { 
            Console.WriteLine는 ( " Daguai 시작! " )
             IF (킬 == ) 
            { 
                up.Speak (); 
            } 
            다른  경우 
            { 
                kill.Speak (); 
            } 
            다른 
            { 
                knock.Speck (); 
            } 
        } 
    }

승인!

각이 경우 다른 추가 나쁘지 추가로 위에서 볼 수 있듯이, 새로운 기술을 추가하는 할머니는 검객 클래스는 선택의 능력을 견딜과 기술을 해제 할 수 있습니다, 새로운 필드 노크를 추가! !

코드가 구현 될 때 난 그냥 변경하지만, 999 일초 그 거물, 이번에는 보스가 나에게 100 개 유령 검객 기술을 추가 촉진 할 수 있습니다.

즉시 나는 파란색에서 볼트! !

이 때, 나는 비밀리에왔다 내 바나나 왕은 나에게 새로운 기술을 가르쳐 사랑 - 추상 클래스를! !

그래서, 추상적 여행의 새로운 아이디어로 시작 :

1 단계 : 기술

첫째, 추상 클래스 AbstractSkill을 정의합니다. 픽, 유령 잘라 내기, 붕괴 일간의 파업, 큰 흡입 모두에 할머니는 AbstractSkill 존재 사운드 기술의 방법이라는 클래스로 추상화하지만 릴리스는 소리가 무엇 무엇? 대답은 아무 소리도 없다.

        공공  추상  클래스 AbstractSkill 
        { 
            공공  추상적  무효 말하기 (); 
        }

- 각각의 특정 기술이 추상 클래스 상속 (즉, 각 스킬 사운드 효과를 다시 추가 재정이 상속하는 방법 AbstractSkill에 다시 작성하는 것입니다)

    공공  클래스 업 : AbstractSkill 
    { 
        공공  재정의  무효 말하기 () 
        { 
            // 사운드 선택 
            (Console.WriteLine을 " 이봐! " ); 
        } 
    } 

    공용  클래스 킬을 : AbstractSkill를 
    { 
        공공  재정의  무효 말하기 () 
        { 
            // 유령 소리를 잘라 
            Console.WriteLine ( " 하! " ); 
        } 
    } 

    공용  클래스 노크 : AbstractSkill 
    { 
        공개 재정의  무효 말하기 () 
        { 
            // 축소 일 사운드 히트 
            (Console.WriteLine을 " 오, 그래! " ); 
        } 
    }

파트 II : 정의의 유령 검객.

나는 (전 그냥 코드를하지 않는 것?) 유령 검객을 재정의이 시간 :

       공공  클래스 검객 
        { 
            개인 AbstractSkill 기술; 

            공공 검객은 () {} 

            공공  무효은 (AbstractSkill 기술)을 선택 
            { 
                 .skill = 기술을; 
            } 

            공공  무효 히트 () 
            { 
                skill.Speak (); 
            } 
        }

파트 III : 유령 검객의 예와 세 가지 기술을 넣어.

클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            // 유령 검객 아사히 아사히 아기의 인스턴스 
            검객 xuxubaobao = 새로운 새로운 검객 (); 
// 선택하고 밖으로 방출하여 아사히 아사히 아기의 선택을 xuxubaobao.Select을 ( 새로운 새로운 업 ()); xuxubaobao.Hit ();
// 아사히 아사히 아기 유령 잘라 사용하고 해제를 선택 xuxubaobao.Select을 ( 새로운 새로운 킬 ()); xuxubaobao.Hit ();
            // 아사히 아사히 아기가 붕괴 및 릴리스 날이 삼진 사용하도록 선택할 
            xuxubaobao.Select를 (새 새 노크 ()); 
            xuxubaobao.Hit ();
        } 
}

예를 들어 : 할머니가, 새로운 기술을 추가 한 후 직접 새 클래스 기술을 정의하고 추상 클래스 AbstractSkill을 상속하려면이 시간, 더 나은 코드를 변경하고있다 (작은 흡입 : 빨아)

    공공  클래스 빨아 : AbstractSkill를 
    { 
        공공  재정의  무효 말하기 () 
        { 
            // 小吸音效 
            Console.WriteLine ( " 오, 오! 오 " ); 
        } 
    }

그래서, 추상 클래스 만 추상 클래스의 자회사에 클래스를 추가해야합니다, 그들은 아무 것도 변경되지 않습니다, 그것은 갑자기 저장 많은 노력 아의 모든! ! !

추천

출처www.cnblogs.com/WeiMLing/p/11392087.html