상속이란 부모(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(); } }