Java로 프로젝트한 경험은 없고, Android Application 위주로 프로젝트를 진행했어서 기본 개념 정리!
와 하나하나 다 보니까 클래스 import부터 상속, 인터페이스 진짜 모르겠다.. 개념은 알지만 코드들 보면 모르겠다ㅎㅎ
- 상속
- 추상클래스
https://blog.naver.com/mdown/221321854820
- 인터페이스 (interface)
https://blog.naver.com/mdown/221325880388
▲ 이 분 설명이 너무 이해가 잘됨.. 이해력 안좋은 나에게 딱 맞춤 설명!
추상클래스 - 분업화를 위해 필요, 자식클래스(or 자식의 자식)에서 메소드를 구현하지 않으면 추상클래스가 되어 객체 생성 불가
인터페이스 -
상속 | 부모클래스의 매개변수를 자식클래스에서 활용 가능 (생성자를 통해) | 부모클래스 1개만 상속 가능 |
추상클래스 | - 분업화를 위해서 필요 - 자식클래스(or 자식의 자식)에서 추상메소드를 구현하지 않으면 추상클래스가 되어 객체 생성 불가 - 부모클래스의 생성자에서 추상메소드 호출 시, 자식의 메소드 사용 가능 |
상속 형식이기 때문에 1개만 상속 가능 기본형 변수O, 메소드 구현O |
인터페이스 | - 객체가 가져야하는 특성, 틀, 약속 - 모든 메소드가 추상메소드로 구현됨 |
기본형 변수X, 메소드 구현X (but Java8부터 default or static을 사용하여 메소드 구현 가능해짐) 인터페이스는 여러개 상속 가능(쉼표로 구분) |
- 오버로딩과 오버라이딩
https://cafe.naver.com/openrt/7316
이름만 비슷할 뿐, 기능은 전혀 다름! 둘 다 정의에 관한 것이다.
오버로딩 (중복정의) |
한 클래스 내의 같은 메소드명에 매개변수가 다르게하여 중복 정의하는 것 | 메서드명 = | 매개변수 ≠ 리턴타입, 접근제한자는 상관X |
오버라이딩 (재정의) |
- 자식클래스에 의해 부모클래스의 메소드가 묻히는 것 - 부모클래스에서 상속받은 메소드를 재정의하는 것 |
메서드명 = | 매개변수 = | 리턴타입 = - 접근제한자 : 자식이 부모보다 같거나 더 넓게 (public > protected > default > private) |
애노테이션으로 @Override 표시를 하는듯?
'WEB > Java' 카테고리의 다른 글
list null empty (0) | 2021.03.08 |
---|---|
오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅 (0) | 2020.06.29 |
상속, 추상클래스, 인터페이스 (0) | 2020.06.29 |