CODEDRAGON ㆍDevelopment/Java
클래스 상속의 중요성
- 클래스 상속은 객체의 재사용이라는 장점뿐만 아니라 코드의 간결성을 제공해 주는 객체지향적 언어의 장점과 특징으로 중요합니다.
- 잘 정의된 super클래스가 있다면 sub클래스의 작성이 간편해지고 그러므로 해서 개발 시간이 단축되는 것들이 상속의 중요성과 장점이라고 할 수 있습니다
File Info
package com.phone; | CellPhoneMain.java | main부 |
package com.phone; | CellPhone.java | 부모클래스 기본적인 휴대폰 기능 - 모델명, 제품번호, 벨소리코드 |
package com.phone; | DiCaPhone.java | 자식클래스 카메라 기능 추가 - 화소, 렌즈 |
package com.phone; | MP3Phone.java | 자식클래스 MP3 기능 추가 - 저장용량, 색상 |
제한사항
클래스 분리를 통해 구현
각 클래스애 추가된 기능 정보는 get메소드를 구현하여 출력(은닉화, 캡슐화)
상속관계를 통한 객체 생성 도식도
상속관계를 통해 정보 공유를 받으므로써 서브클래스의 작업이 매우 간결해지고 쉬워지는 것을 알 수 있습니다.
출력 결과
소스코드
package com.phone;
CellPhoneMain.java | package com.phone;
public class CellPhoneMain {
public static void main(String[] args) {
DiCaPhone dp = new DiCaPhone("A1001", "N1001", 1001, "800만", "F1.8");
MP3Phone mp = new MP3Phone("B1001", "M1001", 2001, 1024, "red");
//디카폰 정보 출력 System.out.println("모델\t 번호\t 벨코드\t 옵션(화소수/사이즈/색상 등)"); System.out.print(dp.getModel()+"\t"); System.out.print(dp.getNumber()+"\t"); System.out.print(dp.getBellSound()+"\t"); System.out.print(dp.getPixel()+" , "); System.out.println(dp.getLens());
//MP3폰 정보 출력 System.out.print(mp.getModel()+"\t"); System.out.print(mp.getNumber()+"\t"); System.out.print(mp.getBellSound()+"\t"); System.out.print(mp.getSize()+" , "); System.out.println(mp.getColor());
} } |
CellPhone.java | package com.phone;
//기본적인 휴대폰 기능 public class CellPhone {
//같은 패키지에서만 호출 가능 / 상속시에도 호출가능 //보통 상속관계에서 패키지가 다르더라도 호출가능하도록 하기 위해 protected를 주로 사용합니다. protected String model; //모델 protected String number; //제품번호 protected int bellsound; //벨소리
public String getModel(){ return model; }
public String getNumber(){ return number; }
public int getBellSound(){ return bellsound; } } |
DiCaPhone.java | package com.phone;
//카메라 기능 추가 public class DiCaPhone extends CellPhone{
private String pixel; //화소 private String lens; //렌즈
public DiCaPhone(String model, String number, int bellsound, String pixel, String lens){ this.model = model; this.number = number; this.bellsound = bellsound;
this.pixel = pixel; this.lens=lens; }
public String getPixel(){ return pixel; }
public String getLens(){ return lens; } } |
MP3Phone.java | package com.phone;
//MP3 기능 추가 public class MP3Phone extends CellPhone{
private int size; //음악 저장용 용량 private String color; //색상
public MP3Phone(String model, String number, int bellsound, int size, String color){ this.model = model; this.number = number; this.bellsound = bellsound;
this.size = size; this.color = color; }
public int getSize(){ return size; }
public String getColor(){ return color; } } |
'Development > Java' 카테고리의 다른 글
StringBuffer에서 append()호출 (0) | 2019.10.12 |
---|---|
자바로 Bayesian Networks 구성 후 CSM 외과 수술 성공확률 예측하기 (0) | 2019.10.10 |
이벤트(Event), 이벤트 중심의 프로그래밍 (0) | 2019.09.28 |
에러의 종류, 컴파일 에러(문법 에러), 컴파일 에러 vs 런타임 에러, 논리 Error, 시스템 Error, 에러(ERROR) vs 예외(Exception) (0) | 2019.09.27 |
객체지향, 객체지향 프로그램 (Object Oriented Programming) (0) | 2019.09.22 |