본문 바로가기
프로그래밍/android

추상클래스를 사용하는 이유

by 액션신 actionshin 2014. 12. 23.

/* 추상클래스는 상속을 강제하기 위한 것이다.
 *
 * - 용도 -
 * 다양한 맥락으로 사용할 필요가 있을때 추상클래스로 만들어
 * 추상클래스에서는 공통적인 로직을 구현하고
 * 상속받는 사용하는 용도에 따라 달리지는 부분을 구현하기 위한 용도로 사용
 *  */

package com.actionshin.javastudy;

abstract class Calculator {
    int left, right;
   
    public void setOperands(int left, int right) {
        this.left = left;
        this.right = right;
    }
   

    int _sum() {
        return this.left + this.right;
    }
    int _avg() {
        return (this.left+this.right)/2;
    }


    public abstract void sum();
    public abstract void avg();
   
    public void run() {
        sum();
        avg();
    }
}

class CalculatorDecoPlus extends Calculator {
    public void sum() {
        System.out.println("+ sum"+_sum());
    }
    public void avg() {
        System.out.println("+ avg"+_avg());
    }
}

class CalculatorDecoMinus extends Calculator {
    public void sum() {
        System.out.println("- sum"+_sum());
    }
    public void avg() {
        System.out.println("- avg"+_avg());
    }
}

public class CalculatorDemoAbstract {
    public static void main(String[] args){
        CalculatorDecoPlus c1 = new CalculatorDecoPlus();
        c1.setOperands(10, 20);
        c1.run();
       
        CalculatorDecoMinus c2 = new CalculatorDecoMinus();
        c2.setOperands(10, 20);
        c2.run();
    }
}

태그

댓글0