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

+ Recent posts