2014년 9월 2일 화요일

닷넷, C#, 인터페이스, 추상클래스, 닷넷클래스, 닷넷교육[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

닷넷, C#, 인터페이스, 추상클래스, 닷넷클래스, 닷넷교육
 
인터페이스와 추상클래스
:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 
비슷한 점 : 모두 파생 클래스가 상속 할 멤버들을 담고 있다그 자체가 직접적으로 인스턴스화 될 수 없다.
 
차이점 : 주된 차이는 다중 상속의 여부이다파생된 클래스는 오직 한 개의 기반 클래스만을 상속 할 수 있다따라서 한 클래스가 추상 클래스(Abstract Class)를 상속하는 경우에는 단 하나의 추상클래스만 직접적으로 상속할 수 있고 반면 인터페이스(Interface)는 여러 개를 한꺼번에 직접 상속 할 수 있다그러나 이 같은 차이는 커다란 차이는 아니며 어떤 경우든 비슷하게 구현이 가능하다.
추상클래스는 추상멤버(구현 코드가 없으며 상속 받은 파생 클래스가 반드시 구현 해야 한다.) 와 비 추상멤버(구현 코드를 가지며 받은 파생 클래스에서 재정의 될 수 있도록 가상으로 설정 할 수 있다.)를 모두 가질 수 있다반면 인터페이스의 멤버들은 코드를 가지지 않으며 반드시 그 인터페이스를 사용하는 클래스에서 구현 되어 져야 한다간단히 정리하면 인터페이스는 추상 멤버만 가진다는 것이다그리고 인터페이스의 멤버들은 모두 public이나 추상클래스의 경우 private member(전용 멤버는 추상멤버는 아니다.), protected member, internal member 등 모두 가능하다또한 인터페이스는 필드생성자정적 멤버상수를 가질 수 없다.
따라서 인터ㅔ이스와 추상클래스는 비슷해 보이지만 사실은 매우 다른 쓰임새를 위해 고안된 것이다추상 클래스는 어떤 공통의 특성을 공유하는 일련의 객체의 기반 클래스로 쓰이는 것이고 인터페이스는 기본적인 수준은 다르지만 그래도 일부의 기능이 비슷한 클래스에 쓰이는 것이다.
 
예를 들어 기차라는 것에 대해 생각해 보자기차(바퀴종류엔진종류운행 한다 등의 기본 멤버를 가진다)에는 승객전송용 기차화물 전용기차 기차 등이 있다고 하자세분화된 이름이 없는 일반적인 기차라는 것은 존재 할 수 없다고 하면 실제 기차를 만들기 위해서 기차라는 클래스는 추상클래스이어야 한다결국 실제 기차를 만들려면 기차라는 공통점을 가지는 좀더 세분화된 파생 클래스를 만들어야 한다이번엔 자동차를 보도록 하자자동차라는 것을 추상 클래스로 두고 각각의 세분화된 자동차(아반테화물차)들은 이 클래스로 공통적인 부분을 상속 받고 일반적인 , 즉 이름이 없는 자동차는 존재하지 않으므로 이 자동차 클래스는 추상 클래스가 되어야 한다.
 
위의 기차와 자동차라는 클래스를 이상에서와 같이 정의 하였다면 이 들의 상속 구조와는 별개로 어떠한 공통적인 특성을 공유 할 수 있는 것이다그 공유되는 특성을 보면 승객전용 기차와 아반테의 경우는 승객을 운송 할 수 있는 행위를 가진다고 볼 수 있다그래서 승객전송 이라는 인터페이스를 만들어 승객을 수송하다()라는 메소드를 정의 할 수 으며 화물 전용 기차와 화물차를 위해 화물을 수송하다() 라는 메소드를 정의 할 수 있다.
 
[과제]
이상의 기차와 자동차에 관련된 부분을 이해 한 후 추상 클래스인터페이스상속다형성의 예를 구현하여 보시기 바랍니다.(Visual Studio를 이용하여 작성 하세요)
 
 
 


 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271691
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111207
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-15966
52 [주말주간]C#, ASP.NET마스터 오라클자바…01-311126
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-31889
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-31816
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191105
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-11991
47 [평일야간,주말주간]JAVA,Network&WEB&Framework 오라클자바…01-031485
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271691
45 [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… 오라클자바…12-191236
44 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) 오라클자바…12-141230
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111207
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-09973
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011145
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011373
39 [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌… 오라클자바…12-01860

댓글 없음:

댓글 쓰기