클래스에서 기반클래스가 있고 파생클래스가 있다
기반클래스를 슈퍼클래스
파생클래스를 서브클래스라고도 한다
기본클래스,파생클래스
부모클래스,자식클래스
슈퍼클래스,서브클래스
설계를 해서 기본클래스 설계로 조금더 단순화 효율성을 높인다
사람-> 여자-> 할머니
사람클래스는 여자클래스의 부모클래스
할머니클래스는 여자클랫의 자식클래스
도그,캣 자식클래스의 부모클래스
Virtual 이 붙으면 메서드에 가상메서드가 나온다.
가상메서드란 자식클래스에 있는 메서드를 호출한는 가상메서드다
makesound라는 메서드가 자식한테 잇으면 그걸 호출한다.
상속을 받는다는것은
클래스: 상속받을클래스(부모클래스)
Protect 접근제한자
자식클래스는 부모클래스에 엑세스가 가능하며
Private 필드가 있다면 상속받은 자식클래스에서도 엑세스 하지못한다.
하지만 public 이나 protected라는 접근제한자는 접근가능한다.
부모클래스의 메서드 및 생성자에 전부 접근 가능하다.
부모클래스의 생성자 를호출할때 부모클래스를 호출할때 방법은
자식클래스의 생성자 다음에 :을 찍고 base
Ex) : base()
라고 하며 base() 부모클래스를 나타냄
:base(petId,name,color,gender)
자식메서드를 재정의할때는 override를 붙여준다.
상속을 왜하나 클래스가 많을수록
관리차원?
부모클래스 변수에 자식클래스를 대입할수있다.
Is 연산자를 쓰면 bool 형을 리턴하고 값을 불형으로 나온다
Pet is cat (ex)
if(pet is cat)
{
부모클래스가 어떤건지 알수잇다.
만약에 맞다면 부모클래스를 자식클래스로 치환할때
(pet as cat).scratch();
}
상속의 이점은 복잡한 프로그램을 짜봐야 알수있다.
'언어 > C#' 카테고리의 다른 글
배열,for each문 제너럴리스트 list<t>, for each , arrayList (0) | 2018.12.16 |
---|---|
필드속성과 접근제한자 datetime (0) | 2018.12.16 |
객체와 클래스 (0) | 2018.12.14 |
C# 메소드,오버로딩 (0) | 2018.12.10 |
C#기술면접 객체지향프로그래밍? (0) | 2018.12.10 |