Language/Java

15. Java 추상클래스

유가엘 2020. 3. 8. 00:53

lesson16_OOP_Abstract.zip
0.01MB
lesson16_OOP_Summary.zip
0.00MB

추상클래스란?

인터페이스(작업명세서)와 비슷한 역활을 하지만, 공통적인 멤버 변수와 기능을 가집니다.

클래스의 공통된 부분을 뽑아서 별도의 추상클래스로 만들고 이것을 상속해서 씀

 

추상클래스(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();


}

 

추상클래스와 인터페이스

 

공통점

구현이 되지 않은 메소드(기능)만 선언합니다.

객체 생성이 불가능 합니다.

 

차이점

추상클래스는 단일 상속만 지원하며, 인터페이스는 다형성을 지원합니다.

추상클래스는 일반 클래스가 가지는 속성과 기능을 가지게 됩니다. ( 멤버변수, 생성자 , 일반 메서드 등.. )