package model;
public class Parent {
public String name;
public int age;
private int money;
public void print(){
System.out.println(name);
System.out.println(age);
System.out.println(money);
}
}
▶money변수를 private로 바꿨다 그렇다면 money 변수는 상속이 될까?
: 상속이 된다! 노출을 안해서 다른곳에서 접근 못하게 한다는 것이지 상속이 안되는 것이 아니다.
접근이 되지 않기때문에 대신 getter/setter를 사용해줘야한다.
package model;
public class Parent {
public String name;
public int age;
private int money; // 노출안하겠다고했지 상속은 된다
public void print(){
System.out.println(name);
System.out.println(age);
System.out.println(getMoney());
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
if(money < 0) {
this.money = 0; // money에 마이너스값 입력 못하게하려고
}
else {
this.money = money;
}
}
}
package model;
public class Child extends Parent {
public String hobby;
public void printChild(){
System.out.println(name);
System.out.println(age);
System.out.println(getMoney());
System.out.println(hobby);
}
}
package main;
import model.Child;
import model.Parent;
public class Main {
public static void main(String[] args) {
Parent p = new Parent();
p.name = "홍길동";
p.age = 25;
p.setMoney(1000000000);
p.print();
System.out.println();
System.out.println();
Child c = new Child();
c.name = "영희";
c.age = 27;
c.setMoney(100000000);
c.hobby = "건물사기";
c.printChild();
}
}
'Java' 카테고리의 다른 글
실습: 학사관리 (0) | 2023.07.03 |
---|---|
메소드 오버라이딩(Method Overriding) (0) | 2023.07.03 |
상속 (Parent-Child 관계) (0) | 2023.07.03 |
생성자 Constructor (0) | 2023.07.03 |
메서드 오버로딩(Overloading) (0) | 2023.07.03 |