자바/자바 기본
추상클래스 / abstract class / abstract method
은은하게미친자
2022. 10. 17. 21:40
728x90
책 안 보면 까먹죠?
안까먹을라면 정리하고 반복 해야죠?
추상클래스?
추상클래스를 알려면 추상메소드를 알아야 한다.
추상메소드 (abstract method)
: 자식클래스에서 반드시 오버라이딩 해야만 사용할 수있는 메소드,
선언부만 존재하며, 구현부는 작성되어 있지 않다.
바로 이 작성되어 있지 않은 구현부를 자식클래스에서 오버라이딩하여 사용
abstract 반환타입 메소드이름(); |
추상클래스 (abstract class)
: 하나 이상의 추상메소드를 포함하는 클래스
추상메소드를 가지고있는 클래스를 상속 받아 반드시 추상 메소드를 구현하도록 하기위해 사용한다.
추상메소드, 생성자, 필드, 일반 메소드도 포함할 수 있다.
abstract class 클래스이름 { abstract 반환타입 메소드이름(); } |
추상 메소드가 포함된 추상 클래스를 상속 받은 모든 자식 클래스는
추상메소드를 구현해야만 인스턴스를 생성할 수잇으므로, 반드시 구현하게 됩니다.
여기서 잠깐, 자바는 다중상속을 지원하지 않습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package java_basic;
abstract class makeup {
abstract String ReturnColor();
}
class Eye extends makeup {
@Override
String ReturnColor() {
System.out.println("EyeMainColor");
return "EyeMainColor";
}
}
class Base extends makeup {
@Override
String ReturnColor() {
System.out.println("BaseMainColor");
return "BaseMainColor";
}
}
public class java_basic_abstract {
public static void main(String[] args) {
System.out.println("뭐야 인터넷이 느린거야 컴퓨터가 느린거야 ");
// makeup m = new makeup(); // 추상클래스는 인스턴스를 생성할 수 없음.
Eye e = new Eye();
Base b = new Base();
e.ReturnColor();
b.ReturnColor();
}
}
|
cs |
728x90