2020-08-12 #추상클래스와 인터페이스

1.추상클래스란?

구체화를 시키지 못한 클래스 ( 추상 메소드를 갖고 있는 클래스)
객체를 생성할 수 있는 클래스는 실체클래스이다. 실체클래스들이 공유할 수 있는 특성을 가진
변수,메소드를 가지고 있는 것을 추상 클래스 라고하고, 추상클래스와 실체 클래스는 상속관계이다.
추상 클래스는 객체를 만들 수 없고 구체화를 시켜야지 사용 가능하다.
오직 상속을 위해서만 사용하는 클래스이다.

 

추상 메소드란?

구체화가 되지 못한 메소드고 가장 큰 특징은 강제성을 부여한다.
어떤 강제성이냐면 자식클래스 하나이상이 무조건 부모의 메소드를 오버라이딩을 해야한다.
부모가 정의 할 수 없기 때문에 만드는 메소드 ( 자식이 어떻게 사용 할 지 모르기 때문에)
이름만 정의해준다. 단 여러가지 기능중 여러클래스들이 같은 기능을 사용하는 함수가 있다면
그건 부모클래스에서 정의해주고 자식이 나눠쓰는 구조를 사용하면 된다.

 

추상클래스를 사용하는 이유

추상클래스에서 미리 정의한 필드와 메소드가 있다면 실체클래스에서는 추상클래스의 변수,메소드명을
변경할 수 없다. 여러클래스간의 같은 필드,메소드 명을 사용하여 통일성과 유지보수성을 높일 수 있다.

 

추상클래스 사용법

클래스 명 앞에 abstract라는 명령어를 써주면 된다.

public abstract clss [클래스명]{
//필드
//생성자
//메소드
//추상메소드 //추상메소드가 하나 이상 있어야한다. 메소드 명 앞에도 abstract가 있어야한다.
			 //상속받은 클래스들은 무조건 추상메소드를 상속받아 오버라이딩을 해야한다.
}

 

 

2.interface

 

interface의 특징
구체화된게 없고, 상수와 추상메소드밖에 가지질 못한다.
어떤 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드를 구현해야 한다.
인터페이스에서 강제하고 있는 메소드는 무조건 구현해야한다. 인터페이스의 멤버의 접근지정자는 반드시
public이어야 한다.

장점
추상클래스는 단일 상속을 원칙으로 하지만 인터페이스는 다중 상속이 가능하다.
따라서 하나의 클래스가 여러개의 인터페이스를 구현 할 수 있다.(인터페이스 끼리도 상속이 가능하다)
왜냐면 내용이 없고 100% 추상화기 때문에 모호성이 없다.

 

interface [인터페이스명]{
	public void i(){}
}


class [클래스명] implements [상속받을인터페이스명]{
	public void i(){}
}

 

'언어 > 자바' 카테고리의 다른 글

[JAVA] 자바 네트워크 개념  (0) 2020.08.16
[JAVA] Thread  (0) 2020.08.13
2020-08-11 # List  (0) 2020.08.12
2020-08-10 ArrayList 기본개념  (0) 2020.08.10
2020-08-10 클래스의 관계  (0) 2020.08.10

댓글

Designed by JB FACTORY