public class Parent {
String name;
int age;
private int money;
Parent() {
System.out.println("Parent 생성자 호출됨");
}
void print() {
System.out.println("name : " + name);
System.out.println("age : " + age);
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
public class Child extends Parent {
// 이 클래스는, Parent 클래스가 가지고 있는
// 속성들을, 상속받을 것이다.
String hobby;
Child() {
System.out.println("Child 생성자 호출됨");
}
// setMoney()
// getMoney()
// print()
// Method Overriding 메소드 오버라이딩
// 상속받는 클래스엣!! 즉 자식클래스에서
// 부모 클래스에 들어있는 함수 이름을 그대로 사용하되!!
// 내가 원하는대로 내용만 바꿔서 사용하는거!!
void print() {
super.print();
System.out.println("hooby : " + hobby);
}
// Method Overloading :
// 하나의 클래스 안에서!! 똑같은 이름의 함수를 여러개 만드는거!!
}
public class ParentMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Parent 클래스를 변수로 생성 (객체 생성)
Parent p = new Parent();
p.name = "부모";
p.age = 50;
p.setMoney(1000000000);
p.print();
System.out.println("돈은 : " + p.getMoney() + "원");
System.out.println();
// 상속받은 Child 클래스를 메모리에 생성(객체 생성)
Child c = new Child();
c.name = "자식";
c.age = 20;
c.hobby = "게임";
c.setMoney(1000000);
System.out.println(c.getMoney());
c.print();
System.out.println();
c.print();
// name :
// age :
// hobby :
}
}
부모클래스의 모든 속성을 상속받지만 private 변수는 억세스가 제한되고 getter setter를 이용해서 접근해야한다.
'자바' 카테고리의 다른 글
자바 super 키워드 (0) | 2022.07.04 |
---|---|
자바 메소드 오버라이딩이란? (0) | 2022.07.04 |
자바 클래스 상속 (0) | 2022.07.04 |
자바 멤버변수와 로컬변수의 차이점 (0) | 2022.07.04 |
자바 접근제어자와 getter setter함수 (0) | 2022.07.04 |