#객체지향 개발을 위한 방법론
# 상속
상속이란, 특정 클래스를 구성할 때 기존 클래스의 데이터와 메소드를 부모 클래스에서 그대로 물려받아 중복적인 코드를 줄이는 것과, 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화된 방식의 프로그램이 가능하게 하는 객체지향 기법입니다.
클래스 자체는 기능을 만든다라는 뜻 하나의 설계도와 같다
특정값을 가지게 하는 필드
행동을 하게 하는 메소드
보안상 또는 실수로 인하여 은닉화 하라
객체가 애초에 만들어지면서 생성자를 만들어 값을 생성해 놓는다.
1. 사용방법
extends 부모클래스 {
// 추가하고 싶은 내용
// 덮어쓰기
}
예시 1)
● 생성자 : 매개변수가 있는 생성자를 생성하면 빈 생성자는 호출되지 않습니다.
▼상속
★상속을 해줄 클래스는 기본 생성자가 존재해야 합니다.
● 오버라이딩 : 상속관계에서 부모와 같은 메서드 이름을 만들어서 노출되게 한 것.(즉, 부모 메소드를 재정의 하는 것.)
예시 2)
● 자식은 자신의 클래스 호출을 할 때 부모의 클래스를 반드시 한 번은 호출하게 된다.
● 부모의 상속받을 내용을 가져오기 위해서는 this 대신 super라고 하면 된다.
●자신의 필드를 접근할 때는 this. / 부모 클래스 접근할 때는 super. / 내 클래스 내에서 시그니처가 다른 생성자를 호출할 때는 this() 메서드 쓴다.
●상위 내용을 주석 처리한 이유는 자바에서는 값을 바로 넣는 건 보안상 또는 실수로 좋지 않기 때문에 하단 생성자로 입력할 수 있도록 해준다.
예시 3)
● 자식은 자신의 클래스 호출을 할 때 부모의 클래스를 반드시 한 번은 호출하게 된다.
따라서 "Product 클래스 생성자 호출!" 확인되는 것이다.
예시 4)
● 자바에서 클래스를 만들면 무조건 상속을 해주는 object가 있다. ( java.lang.object )
● 자바의 경우에 상속은 무조건 하나의 클래스만 받을 수 있다.
● toString = 객체@메모리주소(16진수) 확인하는 메서드
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 16. 다형성 & instanceOf 연산자 (0) | 2020.06.28 |
---|---|
[JAVA] 15. 패키지(package) & 접근제어자 (0) | 2020.06.28 |
[JAVA] 13. 객체 지향 프로그래밍(Object Oriented Programming) / 은닉화 (0) | 2020.06.19 |
[JAVA] 12. 메인(main) 메서드 / 스트링(String) 클래스 (0) | 2020.06.19 |
[JAVA] 11. 함수 / 메소드(Method) (0) | 2020.06.19 |