728x90
반응형

개념적인 이야기보다 제가 놓치기 쉬운 것들을 기록하였습니다.

상속

  • java의 모든 클래스는 Object 클래스를 상속받는다.
  • Object 클래스의 메서드 오버라이딩
    • toString()
  • super : 상위 클래스의 값을 가져올 수 있도록 도와준다.
  • 다중 상속 : C++은 다중 상속이 되지만, 자바에서는 허용하지 않는다. (다중 상속을 하면 프로그램이 복잡해져서 그런가..?)
    • 그래서 차례대로 하나씩 상속시키면 된다. (상속 계층)
    • 하위 클래스 변수를 담을 수 있는 상위 클래스 참조 변수를 만들 수 있다! → 다형성 핵심 ( 부모는 자식을 언제나 담을 수 있다 )
  • instanceof : 현재 객체가 상위 클래스의 인스턴스인지 확인할 수 있다. 맞으면 true를 리턴해줌. (하위 클래스) instanceof (상위 클래스) → true

추상화

  • 추상 메소드를 정의하려면, 추상 클래스를 정의해야 한다.
  • 하위 클래스들이 추상 메소드의 사용방법을 적용한다. → 추상클래스를 상속해서 구상 클래스 만듬.
  • 추상클래스는 새로운 인스턴스를 만들 수 없다.
  • 추상클래스 안에는 비추상적 메소드도 가질 수 있다.

다형성

인터페이스

  • 하나에 여러 개의 적용법이 있을 수 있다. —> 다형성의 핵심 개념. 같은 것에 여러 가지 구현을 부여할 수 있다.
  • 인터페이스는 공통적인 시행 가능 행동들을 대표하는 것이다. 공통 행동을 클래스에게 전달하는 역할.
  • 특정 클래스가 확실히 구현할 메소드들이 무엇인지, 시스템 안의 모든 다른 클래스들은 그 특정 클래스가 모든 메소드들을 담을 것을 기대한다.
  • 인터페이스는 또다른 인터페이스를 상속할 수 있다.
  • 인터페이스 안에서는 변수가 아니라 상수만 선언할 수 있다.

인터페이스 vs 추상화

  • 별다른 관계는 없다. 문법이 비슷해보일 뿐이다.
  • 인터페이스는 언제 사용하는 것일까? : 두 시스템 사이에 소통하길 원하거나 소통 방식을 정하고 싶을때. → implements
  • 추상클래스는 높은 단계의 구조를 제공하고 싶어 할 때 사용. 구현의 세세한 부분들은 하위 클래스에 맡기고 싶을 때. → 상속 extends
  • 인터페이스 안에는 어떤 메소드도 private으로 선언할 수 없다. 모든 것은 public
  • 인터페이스 안에는 변수들을 넣을 수 없다. 모든 것은 상수.
  • 한 클래스는 여러 인터페이스들은 구현할 수 있지만, 여러 추상적 클래스들을 상속할 수는 없다.

다형성

  • 다형성은 인터페이스에 적용되는 만큼 상속 개념에도 적용된다.
728x90
반응형

'백엔드 > Java' 카테고리의 다른 글

[Java] Java Collection 한번에 정리하기  (0) 2023.04.03
[Java] 추상클래스 vs 인터페이스  (0) 2023.03.23
Array, ArrayList  (0) 2023.03.17
Java 실행 원리와 JVM  (0) 2022.11.13
static keyword 정적 키워드  (0) 2022.11.06

+ Recent posts