toggle menu

JAVA 정리 - inheritance (상속)

2012. 7. 24. 10:18 JAVA


상속이란 부모(Super) 클래스의 속성(전역변수 = 필드)과 메소드를 상속 받는 것

자식은 부모의 private 요소를 제외하고 모두 접근가능하지만, 부모는 자식의 것에 접근 불가능하다. 
또한 생성자는 상속되지 않는다. 

상속은 단일 상속 즉, 부모는 단 하나만 가능.
다만, 대를 물린(?) 상속은 가능ㅋㅋ

(자바의 모든 클래스는 오브젝트 클래스를 상속)


상속은 extends 키워드를 사용

class A extends B { ... }
A가 B를 상속받는다

 
자식 클래스들은 하나의 부모 클래스를 상속 받더라도, 각각 개별적인 부모 클래스를 받는다.
부모 클래스의 static 요소는 static의 특성대로 고유하고 각 자식 요소나 부모도 동일하게 한 가지의 static 요소에 접근하게 된다. 

간단한 상속예제
class Flower
{
		public String Flowername;
		public int cost;
		
		protected void printAttributes()
		{
			System.out.println("Flowername="+Flowername+"\tcost="+cost);
		}
}


class Rose extends Flower // 부모인 Flower의 속성과 메소드 모두를 상속받게 된다.
{
	Rose() //생성자
	{
		Flowername = "장미"; //선언하지 않은 변수지만 상속받았으므로 사용가능하다.
		cost = 100; //선언하지 않은 변수지만 상속받았으므로 사용가능하다.
	}
}


class Tulip extends Flower
{
	Tulip()
	{
		Flowername = "튤립";
		cost = 200;
	}
}

public class InheritanceExam
{
	//메인메소드에서 
	public static void main( String [] args )
	{
		Flower Flower = new Flower();
		Rose Rose = new Rose();
		Tulip Tulip = new Tulip();
		
		Flower.printAttributes();
		Rose.printAttributes();
		Tulip.printAttributes();
	}
}


JAVA 관련 포스팅 더보기