3초기억력

상속 : 부모클래스 -> 자식클래스 본문

자바_기초

상속 : 부모클래스 -> 자식클래스

잠수콩 2019. 5. 27. 08:36
// 상속 : 재산을 물려받는 행위
// 기존 클래스에 기능을 추가하거나, 재정의 : 새로운 클래스를 정의하는 것.

// 객체(인스턴스)들은 Object 클래스를 자동적으로 상속 받는다.

// 기본클래스 -> 파생클래스
// 부모클래스 -> 자식클래스
// 상위클래스 -> 하위클래스

// 자식클래스의 멤버갯수는 부모클래스보다 같거나 많을 수 있다.

// 상속의 범위 : 멤버변수, 메서드
//					생성자 제외!

// 명령어 클래스명 extends 기본클래스명

// 자바는 다중 상속이 안된다 -> 해결 interface

package Inheritance;

class Person{
	int age;
	String name;
	
	void eat(String a) {
		System.out.println(a + "를 먹었습니다.");
	}
	
	void sleep() {}
	void play() {}
}

class Child extends Person{
	
	@Override
	public String toString() {
		return "Child [age=" + age + ", name=" + name + "]";
	}
	
}

class Student extends Person{
	
	Student() {
		System.out.println("학생입니다.");
	}
	
}

class Child2 extends Child{
	
	void addAge(int a) {
		this.age += a;
	}
	
	void addName(String b) {
		this.name += b;
	}

	@Override
	public String toString() {
		return "Child2 [age=" + age + ", name=" + name + "]";
	}
	
	
}

public class InheritanceEx {

	public static void main(String[] args) {

		Child c1 = new Child();
		System.out.println(c1);
		
		c1.age = 10;
		c1.name = "어린이";
		c1.eat("밥");
		System.out.println(c1);
		
		System.out.println("=================");
		
		Student s1 = new Student();
		s1.age = 20;
		s1.name = "학생";
		System.out.println(s1);

		System.out.println("=================");
		
		Child2 c2 = new Child2();
		c2.age = 11;
		c2.name = "홍";
		c2.addAge(3);
		c2.addName("누구");
		System.out.println(c2);

	}

}
Comments