공부/개발

상속

티오비 2017. 12. 27. 18:56

상속(Inheritance)

상속에 대해 알아보고자 다음과 같은 class를 작성하였다.

일단 !! 모든 클래스는 하나의 클래스를 무조건~ 상속하고 있다. 바로 Object Class이다. (toString이나 equals와 같은 메서드를 따로 정의하지 않고도 사용할 수 있었던 이유)

먼저 상속이란 무엇일까?

상속은 쉬운 의미로 재사용이다. 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것이다.

단지 재사용한다고 해서 장점이 뭐지??

상속을 사용하게 되면 먼저, 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있다.

코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우!! 용이하다.

 
 
 

오버라이딩(Overring) @Override

조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우가 많다.

조건(자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와)

  1. 이름이 같아야 한다.

  2. 매개변수가 같아야 한다.

  3. 반환타입이 같아야 한다.

  4. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.

    • public > protected > (default) > private
  5. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.

  6. 인스턴스 메서드를 static메서드로 또는 그 반대로 변경할 수 없다.

 

단일 상속

C++은 다중 상속을 허용, 자바는 단일 상속만 허용한다.


다중 상속은 이러한 장단점을 가진다.

장점 : 복합적인 기능을 가진 클래스를 쉽게 작성할 수 있다

단점 : 클래스간의 관계가 매우 복잡해진다



'공부 > 개발' 카테고리의 다른 글

GO 프로그래밍 - 기초 1편 환경 설정  (0) 2020.11.11
swap  (0) 2018.01.10
헷갈리는 String  (0) 2017.12.26
List, Map, Set의 차이점  (0) 2017.08.21
인터페이스 강제 타입 변환(casting)  (4) 2017.06.13