abstract
- 직접적으로 사용할 수 없고 상속해서 사용하도록 강제하는것.
- 구체적인 로직은 없고 껍데기만 존재.
- 메소드에 대한 구체적인 로직은 사용하는 측에게 넘김.
- 메소드가 하나라도 추상메소드가 존재하면 추상클래스가 된다.
예제를 보자.
AbstractA 클래스
abstract class AbstractA { // AbstractB가 없으면 에러가 발생한다. public abstract int b(); //본체가 있는 메소드는 abstract 키워드를 가질 수 없다. //public abstract int c(){System.out.println("Hello")} //추상 클래스 내에는 추상 메소드가 아닌 메소드가 존재 할 수 있다. public void d(){ System.out.println("world"); } } | cs |
AbstractA 클래스 상속받는 AbstracB 클래스
class AbstractB extends AbstractA{ // 본체있는 b메소드를 정의. public int b(){ return 1; } } | cs |
public class AbstractDemo { public static void main(String[] args) { // AbstractA obj = new AbstractA(); AbstractB obj = new AbstractB(); } } | cs |
AbstractA클래스에 b()메소드를 사용하기위해서는 - (바로 사용 할수 없기때문에)
AbstractA의 상속받는 AbstractB클래스를 생성하여 해당 b 메소드(본체)를 정의해야한다.
'STUDY > JAVA' 카테고리의 다른 글
Abstract2 (0) | 2018.01.22 |
---|---|
Java의 String interpolation[문자열 덧붙이기] (0) | 2018.01.22 |
접근제어자2(Default 접근제어자와 Public 접근제어자) (0) | 2018.01.22 |
접근제어자1 (0) | 2018.01.22 |
오버라이딩 (0) | 2018.01.22 |