메소드 오버라이딩(Method Overriding)
상속받은 함수를 재활용하여 코드를 작성할 수 있도록 한다.
자식 클래스에서 부모 클래스와 동일한 이름, 반환형, 매개변수를 가진 메소드를 정의하면
부모 클래스의 메소드 대신 자식 클래스의 메서드가 호출
부모 클래스
package model;
public class Parent {
//protected 접근 제어자는 같은 클래스나 같은 패키지의 클래스
//그리고 다른 패키지에서 상속받은 자식 클래스에서 접근할 수 있는 멤버를 지정
protected String name;
protected int age;
protected int money;
public Parent() {
System.out.println("Parent Class 생성자 동작 1");
}
public Parent(String name, int age, int money) {
this.name = name;
if (age > 0) {
this.age = age;
}
this.money = money;
System.out.println("Parent Class 생성자 동작 2");
}
public void print(){
System.out.println("이름 : " + name + ", 나이 : " + age + ", 재산 : " + money);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age < 0) {
return;
}
this.age = age;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
자식 클래스
상속받는 클래스를 작성할 때 @Override 어노테이션을 입력한다
package model;
public class Child extends Parent {
// String name;
// int age;
// int money;
// 부모의 함수도 다 상속받는다.
private String hobby;
public Child() {
System.out.println("Child Class 생성자 실행 1");
}
public Child(String name, int age, int money, String hobby) {
super(name, age, money);
this.hobby = hobby;
System.out.println("Child Class 생성자 실행 2");
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
@Override
public void print() {
super.print();
System.out.println("취미는 : " + hobby);
}
}
'Java' 카테고리의 다른 글
[Java] 문자열을 숫자로 변환, 숫자를 문자열로 변환하는 방법 (2) | 2024.06.03 |
---|---|
[Java] 정수 및 실수를 클래스로 생성하는 방법 (0) | 2024.06.03 |
[Java] super 키워드 (0) | 2024.06.03 |
[Java] 클래스 상속 (1) | 2024.06.03 |
[Java] getter / setter 함수 (0) | 2024.05.31 |