Day11

두윤기·2023년 1월 11일
0
post-thumbnail

복습

  • 상속은 단 하나의 class만 받을 수 있음

과제

  • 다이어그램을 미리 준비하면 서로 소통하기 편해진다.(팀프로젝트 시)

inheritance 시 염두해야 할 사항

> modifier (field)

  • private
    inheritance 관계 없이 자신만 접근 가능
  • protected
    같은 package + sub class들은 접근 가능

> override (method)

  • 기존 method를 교체하고 싶을 때 사용
  • super class에 있는 형태(return, parameter type)와 똑같이 구현
  • final keyword: override 불가능
  • abstract keyword: subclass에서 override 해야함

Anootation

  • @Override
  • 명찰을 부착하여 하단 코드의 역할을 정의
  • meta programming

> constructor

  • super()
  • 중개

> abstract

  • inheritance 위한 super class
  • 일반 class와 다른 점 3가지
    • class에 abstract 표시
    • object 생성 불가능
    • abstract method 생성 가능
  • abstract method
    • abstract method와 일반 method 구현
    • abstract method는 이름은 아는데 구체적인 구현내용이 없을 때
    • subclass에서 abstract method 구현을 반드시 해야함

polymorphism

> upcasting

  • data를 유연하게 처리할 수 있다.

static type generate

IPhone13 m1 = new IPhone13("black");

dynamic type generate

Mobile mo1 = new IPhone13("black");

+ 디자인패턴

> downcasting

  • upcasting이 이루어졌을 때 가능
// upcasting
Hwang a = new Hwang();
Teacher t1 = a;

// downcasting
Hwang c = (Hwang) t1;
c.dring();
c.game();
c.teach();

instanceof

b instanceof Hwang

multiple inheritance

  • inheritance에서 super class는 무조건 1개만 가능
  • class는 종류가 여러 가지가 있다.
    = class만 있는게 아니라 다중상속을 위한 또 다른 class가 존재한다.
    = interface
  • inheritance에서 super class(+interface)는 많을수록 좋다.

> interface

  • data의 틀을 잡을 때 사용
  • implements와 ,로 여러 개 상속 가능
    implements MC, Singer, Comedian
  • upcasting, downcasting 가능
profile
programmerD

0개의 댓글