public abstract int add(int a, int b);
abstract
예약어를 반환형 앞에 붙인다.public static final
이다.public abstract
이다.public interface BInterface {
void method1();
void method2();
void method4(int x);
}
public interface CInterface {
void method1();
void method3();
void method4(int x, int y);
}
public class A implements BInterface, CInterface {
void method1() {...} // B,C 둘 중 어느 것을 가져와도 된다.
void method2() {...}
void method3() {...}
void method4(int x) {...} // from B
void method4(int x, int y) {...} // from C, overloading
}
public interface Calculator {
/*public static final*/ int ZERO = 0;
/*public abstract*/ int calculate(int a, int b);
void print();
}
public interface AddCalculator implements Caculator {
private int result;
@Override
public int calculate(int a, int b) {
result = a + b;
return result;
}
@Override
public void print() {
System.out.println("AddCalculator");
}
}
public interface EngineeringCalculator extends Calculator {
double calculate(double a, double b);
}
추상 메서드를 선언하여 상속을 통해 자식 클래스에서 완성하도록 유도하는 클래스
class
앞에 abstract
예약어 사용abstract
을 붙여주어야 한다.public abstract class Calculator {
protected int result;
int calculate(int a, int b) {
result = a + b;
return result;
}
public abstract void print();
}
public class SubtractCalculator extends Calculator {
@Override
int calculate(int a, int b) {
return a - b;
}
@Override
void print() {
System.out.println("SubtractCalculator");
}
}
사용 의도
공통 기능 사용 여부