클래스 상속의 중요성, 상속관계를 통한 객체 생성 도식도

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;

    }

}