본문 바로가기
STUDY/JAVA

Abstract1

by NOTEEE 2018. 1. 22.

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