파파비의 블로그
추상클래스, 추상메소드 본문
추상클래스라는 것은
추상메소드가 '포함'된 클래스를 의미한다.
추상클래스에는 추상메소드'만' 있는 것은 아니다.
그렇다면 추상메소드라는 것은 무엇일까?
추상메소드는 이름만 있고, 구현이 안 된 메소드이다.
구현이 됐다 안됐다의 차이는 '블록'에 있다.
public void function(){ } |
해당 코드는 구현이 된 메소드이다. 비록 아무 내용도 없지만 말이다.
이유는 '블록'이 설정되어 있기 때문이다.
public void function(); |
이 것이 추상메소드이다. 구현이되지 않은 메소드이기 때문이다.
블록대신 ';'로 처리되어 있다.
실제로 이렇게 쓰면 오류가 날 것이다.
추상메소드는 abstract라는 키워드를 붙여줘야 한다. 그래서 제대로 된 것은
abstract public void function(); |
이렇게 앞에 abstract를 붙여줘야 한다.
위와 같이 추상메소드를 넣으려면 클래스에도 추상클래스임을 알려야 한다.
그래서 class 앞에 abstract를 붙여줘야 한다.
따라서 쭉 정리를 해보자면,
추상클래스 구현을 위해서는
1. abstract 키워드를 class 앞에 붙인다.
2. abstract 키워드를 추상메소드 앞에 붙인다.
3. 추상메소드는 블록이 아닌, ;로 마무리 짓는다.
추상클래스는 무조건 객체를 만들 수 없다. 구현이 안 된 부분들이 있기 때문이다.
미완성된 클래스를 사용한다는 것이 말이 안되기 때문이다.
그렇기 때문에 추상클래스를 상속해서 추상메소드들을 구현한 클래스는 객체 사용이 가능하다.
상속할 때는 무조건 '전부' 추상메소드를 구현해야 한다.
추상메소드는 활용이 굉장히 자주된다.
추상클래스는
기본적인 것만 구현해 놓고 나머지 부분은 개발자가 알아서
구현하도록 맡기는 대신 빼먹지 않도록 강제할 수 있다.
'개발 > java' 카테고리의 다른 글
Thread 쓰레드 (0) | 2020.04.05 |
---|---|
인터페이스 (0) | 2020.04.05 |
중첩클래스 (일반 중첩클래스, Static 중첩클래스, 메소드 중첩 클래스, 익명 중첩클래스) (0) | 2020.04.04 |
단락 평가, ||/|의 차이 그리고 &&/&의 차이 (0) | 2020.04.01 |
난수를 만들어내는 방법, Random 객체 (0) | 2020.04.01 |