오버라이딩
: 부모클래스에서 물려받은 메서드를 재정의하는 것
⭐ 사용시 주의할점
1. 부모클래스의 메서드와 선언부가 완전히 일치해야함
2. 접근 제한자는 같거나 더 넓은 범위를 사용 (범위 축소x)
//부모 클래스
class Animal {
private String name; //이름
private String category; //종
//생성자
public Animal() { }
public Animal(String name, String category) {
this.name = name;
this.category = category;
}
//info 메서드
public void info() {
System.out.println("===============");
System.out.println("이름: " + name);
System.out.println("분류: " + category);
}
//울음소리 메서드
public void howl() {
System.out.println("==" + name + " 울음소리==");
}
//getter/setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
//<자식 클래스>
class Dog extends Animal {
public Dog() {
setName("멍멍이");
setCategory("개과");
// public void setName(String name) {
// this.name = name;
// } => Animal의 setName사용
}
@Override
public void howl() {
super.howl(); //super사용: 부모클래스의 값을 가져오기!
System.out.println("멍멍!");
}//System.out.println("==" + name + " 울음소리==");
}
'JAVA > java' 카테고리의 다른 글
[JAVA] class 클래스와 객체 : final (수정이 불가능한 상수) (0) | 2023.03.25 |
---|---|
[JAVA] class 클래스와 객체 : this 예약어 (0) | 2023.03.25 |
[JAVA] class extend 클래스 상속 (0) | 2023.03.25 |
[JAVA] class 클래스 사용 (0) | 2023.03.25 |
[JAVA] class 클래스 구성요소 (0) | 2023.03.25 |