class TV{ private int size; public TV(int size) { this.size = size; } public int getSize() { return size; } }
public static void main(String[] args) { ColorTV myTV = new ColorTV(32, 1024); myTV.printProperty(); }
32인치 1024컬러
class TV{ private int size; public TV(int size) { this.size = size; } public int getSize() { return size; } } class ColorTV extends TV{ private int color; public ColorTV(int size, int color) { super(size); this.color = color; } public void printProperty() { System.out.println(super.getSize() +"인치 "+ color+"컬러"); } } public class TVMain { public static void main(String[] args) { ColorTV myTV = new ColorTV(32, 1024); myTV.printProperty(); } }
32인치 1024컬러
public static void main(String[] args) { IPTV iptv = new IPTV("192.1.1.2", 32, 2048); //"192.1.1.2" 주소에 32인치, 2048컬러 iptv.printProperty(); }
나의 IPTV는 192.1.1.2 주소의 32인치 2048컬러
class TV{ private int size; public TV(int size) { this.size = size; } public int getSize() { return size; } } class ColorTV extends TV{ private int color; public ColorTV(int size, int color) { super(size); this.color = color; } public void printProperty() { System.out.println(super.getSize() +"인치 "+ color+"컬러"); } } class IPTV extends ColorTV{ private String address; public IPTV(String address, int size, int color) { super(size, color); this.address = address; } @Override public void printProperty() { System.out.print("나의 IPTV는 " + address + " 주소의 "); super.printProperty(); } } public class TVMain { public static void main(String[] args) { IPTV ipTV = new IPTV("192.1.1.2", 32, 2048); ipTV.printProperty(); } }
나의 IPTV는 192.1.1.2 주소의 32인치 2048컬러
- is-a는 상속관계.. A is a B 일 때 A는 B의 자식이다.
- 나머지는 모두 has-A 관계로, 상속이 아닌 클래스 내부에 field(instance variables, class variables)로 포함되어 사용될 수 있다.
다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다.
자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있습니다.
다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다
- 부모클래스 타입 변수에 자식클래스 객체를 생성해 대입하면 부모에 해당하는 메모리 영역(field, method)에만 접근이 가능하여 여러 클래스에서 같은 부모class를 상속(또는 interface를 구현)하여 공통적으로 사용하기 쉽게 구현하는 방식. 이것을 성질로 나타낸 것이 다형성.