반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Inheritance(상속) 본문

[IT]/java

java.Inheritance(상속)

givemebro 2021. 2. 26. 14:40
반응형

상속(Inheritance) : 부모 멤버(속성, 기능)를 자식이 물려받아 재사용

> 계층구조를 형성해 다형성(Polymorphism)을 적용한 환경을 제공

 

 

is a relationship(UML : class diagram에서는 generalization)

> 사람은 동물이다 / 엔지니어는 사원이다

 

객체지향의 주요 개념으로써, 부모맴버를 자식이 물려받아 재 사용해 개발 생산성 향상

 

// public class 자식클래스 extends 부모클래스{}

> 상속은 하나만 받을 수 있음(Single Inheritance:단일 상속)

> 다중상속의 장점은 인터페이스로 채택

 

package step5;

class Animal {
	int age = 1;

	public void eat() {
		System.out.println("먹다");
	}
}

// 아래와 같이 부모 Animal 클래스를 상속받으면 부모의 멤버(속성, 기능)을 물려 받는다.
class Person extends Animal { // 자식클래스 extends 부모클래스
	String name;
}

public class TestInheritance1 {
	public static void main(String[] args) {
		Person p = new Person();
		p.name = "아이유";
		System.out.println(p.name);
		System.out.println(p.age); // 상속 받았으므로 사용 가능

		p.eat(); // 상속 받았으므로 사용 가능
	}
}

 

 


package step6;

public class TestInheritance2 {
	public static void main(String[] args) {

		Person p = new Person();
		p.setName("아이유");
		System.out.println(p.getName());
		
		p.setAge(10);
		System.out.println(p.getAge());
		
		System.out.println(p.getDetails()); // 아이유와 10
	}
}
package step6;

public class Person extends Animal {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	// name와 age를 모두 반환
	public String getDetails() {
		// TODO Auto-generated method stub
		// 상속 받더라도 부모의 private member는 직접 접근 불가 > getter / setter
		return name + " " + super.getAge();
	}
}
package step6;

public class Animal {
	private int age;

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

 

 

반응형

'[IT] > java' 카테고리의 다른 글

java.Overriding(메서드 오버라이딩)  (0) 2021.03.02
java.분석 설계  (0) 2021.03.02
java.super/this  (0) 2021.02.26
java.Access Modifier(접근 제어자)  (0) 2021.02.26
java.overloading(오버로딩)  (0) 2021.02.26
java.Array(배열)  (0) 2021.02.26
java.variable.instance/local  (0) 2021.02.26
java.Object Relationship(객체 관계)  (0) 2021.02.26
Comments