티스토리 뷰

배운 것 기록/java

상속

키죽 2022. 5. 31. 22:38

상속

class 서브클래스명 extends 슈퍼클래스명 {}

슈퍼 클래스의 멤버(멤버변수, 메서드)를 서브 클래스가 물려 받는 것!

 

- 중복 코드 사용 방지, 유지보수에 용이

- private 접근제한자 적용 시 상속 대상에서 제외된다.

- 생성자는 상속되지 않는다.

- 자바는 단일 상속만 지원한다.

 

 

메서드 오버라이딩

상속받은 메서드를 서브클래스에스 재정의하는 것!

- 서브클래스에서 오버라이딩 수행 후에는 슈퍼클래스의 메서드는 은닉된다.

 

public class Px1 {

	public static void main(String[] args) {
		
		Dog a1 = new Dog();
		a1.name = "바둑";
		a1.age = 3;
		a1.Cry();	// 멍!, 바둑 : 3
		
		Ham a2 = new Ham();
		a2.name = "햄";
		a2.age = 2;
		a2.Cry();	// 찍!, 햄 : 2
		
		a1.Pet();	// 반려동물!
	}

}
class Animal {	// 슈퍼클래스
	String name;
	int age;
	String cry;
	
	public void Pet() {
		System.out.println("반려동물!");
	}
	public void Cry() {
		System.out.println("울음소리!");
	}
	public void showInfo() {
		System.out.println(name + " : " + age);
	}
}
class Dog extends Animal{	// 서브클래스
	@Override		// 오버라이딩
	public void Cry() {
		System.out.println("멍!");
		showInfo();
	}
}
class Ham extends Animal{	// 서브클래스
	@Override		// 오버라이딩
	public void Cry() {
		System.out.println("찍!");
		showInfo();
	}
}

 

'배운 것 기록 > java' 카테고리의 다른 글

레퍼런스 형변환  (0) 2022.06.02
super, final  (0) 2022.06.01
Scanner  (0) 2022.05.30
싱글톤  (0) 2022.05.29
자동 증가값 생성 - static  (0) 2022.05.28
댓글
최근에 올라온 글
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함