/* 추상클래스는 상속을 강제하기 위한 것이다.
*
* - 용도 -
* 다양한 맥락으로 사용할 필요가 있을때 추상클래스로 만들어
* 추상클래스에서는 공통적인 로직을 구현하고
* 상속받는 사용하는 용도에 따라 달리지는 부분을 구현하기 위한 용도로 사용
* */
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();
}
}
'프로그래밍 > android' 카테고리의 다른 글
실행중인 액티비티의 상태를 확인하기 (0) | 2014.12.23 |
---|---|
두 액티비티 간 생명주기 (0) | 2014.12.23 |
클래스 변수의 용도 (0) | 2014.12.18 |