1 분 소요

배운점

1. 다형성(Ploymorphism)

  • 하나의 객체가 여러가지 형태를 가질 수 있는 성질
  • 상위 클래스 타입의 참조변수를 통해 하위 클래스의 객체를 참조할 수 있다
  • 참조변수.instanceof(타입) 을 통해 캐스팅이 가능한지 여부를
    boolean 타입으로 확인 가능하다
  • 다형성을 잘 활용하면 많은 중복되는 코드를 줄이고 보다 편하게 코드를 작성 할 수 있다


2. 추상화(Abstraction)

  • 사물이나 표상의 어떤 성질, 공통성, 본질을 추출하여 파악하는 것
  • 기존 클래스들의 공톡적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것
  • abstract 키워드를 통해 추상 클래스, 메소드를 정의할 수 있다
  • 추상 클래스를 상속받을 때 추상 클래스의 추상 메소드를 모두 오버라이딩 해야한다
    (하지 않을 시 상속 받는 클래스도 추상 클래스가 된다)
  • 추상 클래스는 인스턴스를 생성 할 수 없다
  • 상속 계층도 상층부에 위치할수록 추상화의 정도가 높다
  • 다중 상속 불가능


2. 인터페이스(Interface)

  • 추상 메소드보다 더 높은 추상성을 가진다
  • 추상 메소드와 상수만을 멤버로 가질 수 있다(default/static 메소드도 생성 가능)
  • 내부 모든 필드가 public static final, 메소드가 public abstract 로 정의된다
  • implements 키워드를 통해 인터페이스를 구현 할 수 있다
  • 인터페이스는 다중 구현을 지원한다


느낀점


오늘은 다형성과 추상화에 대해 배웠다.

다형성과 추상화 모두 코드의 재사용성과 유지보수에 좋은 역할을 한다

공부하면서 다형성과 추상화를 한번에 생각하여 코드를 짜는 것은 아직 나에게
어렵다는 생각이 들었고, 유지보수, 효율성을 높히기 위해 코드를 고칠 때
클래스들 간에 관계를 정리해가면서는 가능 할 것 같다는 생각이 들었다

빨리 배운 것들을 사용하여 내 것으로 만들고 싶다!!

댓글남기기