상속
정의 : 기존의 클래스를 재사용하여 새로운 클래스를 작성
- 코드를 공통적으로 관리할 수 있다. ( 코드의 양이 적어진다, 관리가 용이하다 )
- extends를 사용하여 상속한다.
class Parent{} class Child(자손 클래스) extends Parent(조상 클래스){} //자손 클래스가 조상클래스를 포함하고 있는 형태
- 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다(생성자, 초기화 블럭 제외)
- 자손 클래스의 멤버수는 조상의 멤버수와 같거나 더 많다.
public class Main{ public static void main(String[] args) { Color_Tv color = new Color_Tv(); Black_White_Tv black = new Black_White_Tv(); System.out.printf("color.display = %s, black.display = %s\n",color.display, black.display); System.out.printf("color.MAXVOLUME = %d, black.MAXVOLUME = %d",color.MAX_VOLUME, black.MAX_VOLUME); System.out.println(); Tv.MAX_VOLUME = 200; System.out.printf("color.MAXVOLUME = %d, black.MAXVOLUME = %d",color.MAX_VOLUME, black.MAX_VOLUME); } } class Tv { static int MAX_CHANNEL = 20; static int MIN_CHANNEL = 0; static int MAX_VOLUME = 20; static int MIN_VOLUME = 0; } class Color_Tv extends Tv{ String display = "Color"; } class Black_White_Tv extends Tv{ String display = "Black_White"; } //출력 : color.display = Color, black.display = Black_White color.MAXVOLUME = 20, black.MAXVOLUME = 20 color.MAXVOLUME = 200, black.MAXVOLUME = 200
- 자바는 단일 상속만 가능하다 여러 조상 클래스로부터 상속받는 다중 상속 불가
포함
정의 : 클래스의 멤버변수로 다른 타입의 클래스의 참조변수를 선언하는 것
class two{ int x=0,y=1; } class three{ int x=0,y=1,z=2; }를 아래로 작성하면 포함
class two{ int x=0,y=1; } class three{ two t = new two(); int z=2; }
관계 결정하는 법
상속
a는 b다 : a가 b를 상속받음
- 예시 : 전기차는 차다 ( 전기차가 차의 속성을 상속받음)
포함
a는 b를 가지고 있다 : a가 b를 포함
- 예시 : 전기차는 바퀴를 가지고 있다 (전기차가 바퀴의 속성을 포함하고 있음)