추상클래스란?
인터페이스(작업명세서)와 비슷한 역활을 하지만, 공통적인 멤버 변수와 기능을 가집니다.
클래스의 공통된 부분을 뽑아서 별도의 추상클래스로 만들고 이것을 상속해서 씀
추상클래스(Abstract)의 특징
-
멤버변수를 가집니다.
-
만들어진 추상클래스를 사용하기위해선 Extends를 통해 사용 합니다.
-
1개 이상의 추상 메서드를 가지게 됩니다. 상속시 반드시 구현해주어야 합니다.
-
일반 메서드와 생성자를 가질 수 있습니다.
-
abstract클래스를 상속하기 위해서는 extends를 이용한다.
-
abstract 메서드를 가지며, 상속한 클래스에서 반드시 구현해야한다.
추상클래스의 구현
package lesson16_OOP_Avengers;
/**
* 추상 클래스 : 미완성된 메소드가 있기 떄문에 객체를 만들 수 없습니다.
*
* */
// 추상메소드를 하나라도 가지는 클래스는 추상클래스여야함
public abstract class Avengers {
// 멤버 변수
private String name;
private int age;
// 기본 생성자
public Avengers() {
// TODO Auto-generated constructor stub
}
// 커스텀 생성자
public Avengers(String name, int age) {
super();
this.name = name;
this.age = age;
}
// Getter Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 일반메소드
public void printInfo() {
System.out.println(name);
System.out.println(age);
}
// 추상메소드: 반드시 오버라이딩 해야하는 메소드
public abstract void attack();
}
추상클래스와 인터페이스
공통점
구현이 되지 않은 메소드(기능)만 선언합니다.
객체 생성이 불가능 합니다.
차이점
추상클래스는 단일 상속만 지원하며, 인터페이스는 다형성을 지원합니다.
추상클래스는 일반 클래스가 가지는 속성과 기능을 가지게 됩니다. ( 멤버변수, 생성자 , 일반 메서드 등.. )
'Language > Java' 카테고리의 다른 글
18. Java Collections (0) | 2020.03.08 |
---|---|
17. Java 문자열 및 유용한클래스 (0) | 2020.03.08 |
14. Java 인터페이스와 다형성 (0) | 2020.03.08 |
13. Java 상속 (0) | 2020.03.07 |
12. Java 데이터 은닉과 접근 제어자 (0) | 2020.03.06 |