상속의 특징
1. 코드의 재사용성 증가
2. 코드의 유지보수 용이
상속을 사용할 시 주의 사항
★ 부모 클래스의 코딩이 끝나면, 자식 클래스의 코딩을 시작하기 ★
★ 본인이 사용하는 모든 멤버변수를 다 초기화 하고 있는지를 확인 ★
멤버변수 = 클래스 변수 + 인스턴스 변수
위와 같은 클래스 A가 있을 때,
extends를 사용함으로써 이 둘은, 상위 클래스와 하위 클래스로 불리우게 된다.
그리고,
부모 클래스 에서는 자식 클래스의 내용에 접근이 불가능 하다.
자식 클래스 에서는 부모 클래스의 멤버변수, 메서드에 접근이 가능 하다.
라는 특징을 가진다.
아래의 main문을 통해 알아 볼 수 있다.
1. 참조변수 aaa를 통해 클래스 A를 객체로 인스턴스
2. 클래스 A에 생성자가 따로 없으므로, 디폴트 생성자가 생성 된다.
3. 인스턴스 변수를 초기화 시켜줘야 하기 때문에, 참조변수 aaa를 통해
aaa.a = 10; 으로 a의 값을 초기화 시켜 준다.
4. 마찬가지로, 참조변수 bbb를 통해 클래스 B를 객체로 인스턴스
5. bbb.b = 20;으로 b의 값을 초기화 시켜 준다.
------------------------------------------------------------------------------------------------
aaa.funcA(); 를 하면, 해당 객체의 인스턴스 변수 a를 10으로
초기화 해줬기 때문에, a = 10 으로 나오게 된다.
bbb.funcA(); 를 하면, 해당 객체에서 인스턴스 변수 a를
초기화 시켜주지 않았기 때문에, a = 0 으로 나오게 된다.
마지막으로 bbb.funcB(); 를 하면,
해당 객체에서 인스턴스 변수 b를 초기화 해줬기 때문에
b = 20 으로 나오게 된다.
정리 :
클래스 A로부터 상속을 받은 클래스 B가 가지는 것들은 다음과 같다.
1. int a
2. funcA()
3. int b
4. funcB()
'Java (국비) > Java 이론' 카테고리의 다른 글
상속 3 (0) | 2023.05.15 |
---|---|
상속 2 (0) | 2023.05.15 |
next() 그리고 nextLine() 의 차이 (0) | 2023.05.13 |
Java (0) | 2023.05.11 |
객체지향언어 (Object Oriented Language) 특징 (2) | 2023.05.10 |