abstract class를 쓰는 경우는 두가지다
1. new를 막으려고 ( = 객체 생성 방지)
(e.g.) 도형이라는 클래스가 있다고 하고 하위에 삼각형, 사각형, 오각형이 있다.
삼각형, 사각형, 오각형 객체를 생성해서쓰는데
도형이라는 객체를 생성할 필요 없기때문에 abstract로 생성하지못하게 방지하는것이다.
2. abstract 메소드가 있어서
한 클래스에 abstract 메소드가 있으면
해당 클래스도 absract여야 한다!!!
이거는 idle에서 빨간 밑줄이 쳐지기 때문에 금방 알수있을 것이다.
--> abstract 메소드가 있는 클래스를 상속받은 하위 클래스에서는
해당 메소드에 대한 구현이 있어야한다.
(e.g.) 상위 클래스 도형에 추상메소드인 abstract lineNum(); 쓰니까
하위에서는 lineNum을 쓸때 내용을 구현해주어야 한다!
만약 구현하지 않고 싶다면
tri를 abstract 클래스로 만들고 이 클래스를 상속받는 클래스에서
내용을 구현해주는 방법이 있다
'language > 자바' 카테고리의 다른 글
[java] local variables , instance variables, class variables (지역변수, 인스턴스변수, 클래스변수) (0) | 2022.07.20 |
---|---|
[java] default method 디폴트 메소드 (feat. abstract class) (0) | 2022.07.18 |
[java] 상속에서 조심해야 하는 점 (0) | 2022.07.13 |
[java]static의 사용이유 (0) | 2022.07.11 |
getter와 setter (0) | 2022.05.31 |