○ 클래스의 공통된 부분을 뽑아서 별도의 클래스 즉, 추상클래스를 만들어 놓고 이를 상속해서 사용
○ 추상 클래스의 특징
- 멤버변수를 가짐
- 추상클래스를 상속하기 위해서는 extends를 이용
- 추상 메서드를 가지며 상속한 클래스에서 반드시 구현해야함
- 일반 메서드도 가질수 있음
- 일반 클래스와 마찬가지로 생성자도 있음
○ 추상 클래스와 인터페이스 공통점
- 추상 메서드를 가짐
- 객체 생성이 불가하며 자료형 타입으로 사용
○ 추상 클래스와 인터페이스 차이점
- 추상 클래스 : 상수, 추상세서만 가짐. 추상 메서드를 구현만 하도록함. 다형성을 지원
- 인터페이스 : 클래스가 가지는 모든 속성과 기능을 가짐. 추상 메서드 구현 및 상속의 기능을 가짐. 단일 상속만 지원.
예제 1) 추상클래스 생성 및 메서드 선언, 메서드 선언+정의
package person_test;
//추상클래스 선언 public abstract class
public abstract class AbstractClassEX {
//추상클래스 속성지정
int num;
String str;
public AbstractClassEX() {
System.out.println("추상클래스 생성자1");
}
public AbstractClassEX(int i, String s) {
System.out.println("추상클래스 생성자1");
this.num = i;
this.str = s;
}
//추상클래스 메서드 선언 + 정의
public void fun1() {
System.out.println("웃다1");
}
//추상클래스 메서드 선언
public abstract void fun2();
}
예제 1-1) 클래스 생성 및 메서드 선언, 추상클래스 상속 + override활용하여 추상클래스의 메서드 재정의
package person_test;
//생성클래스 추상클래스 참조
public class ClassEX extends AbstractClassEX {
public ClassEX() {
System.out.println("클래스 생성자");
}
public ClassEX(int i, String s) {
super(i, s);
}
//추상클래스로부터 상속받아 재정의하기에 @Override 활용
@Override
public void fun2() {
System.out.println("웃다2");
}
}
예제 1-2) 객체선언 + 추상클래스를 객체 자료형타입으로 지정 및 메서드 활용
package person_test;
public class ClassEX_Main {
//객체생성 + 추상클래스를 객체타입
public static void main(String[] args) {
AbstractClassEX EX = new ClassEX(10, "java");
//클래스 지정 메서드 활용
EX.fun1();
EX.fun2();
}
}
'Java > Java_basic' 카테고리의 다른 글
Step21. 문자열 클래스 (0) | 2023.09.26 |
---|---|
Step20. 람다식(Lamda) (0) | 2023.09.26 |
Step18. 인터페이스(Interface) (0) | 2023.09.25 |
Step17. 내부클래스와 익명클래스 (0) | 2023.09.25 |
Step16. 오버라이드(Override)와 Super 클래스 (2) | 2023.09.25 |