2020. 8. 23. 18:54ㆍJava/Java
자바의 메서드에는 일반메서드, 정적메서드 그리고 추상메서드가 있다.
세개의 특징을 보면 아래와 같다.
1.일반메서드->객체생성으로 호출가능=>특별한 목적,기능
2.정적메서드->객체생성 없이 호출이 가능->단순,반복,보편적인 기능
3.추상메서드--->1)메서드의 선언만 되어있는 메서드
public abstract void go(); //1) ~메서드명();
========
abstract public void go(){} //2) ->기능이 없는것
======== 일반메서드
2)추상메서드선언을 위해 앞에=> abstract 예약어를 써준다.
3)추상메서드를 한개라도 가지고 있는 클래스를 추상클래스라고 한다.
=>추상클래스를 일반클래스와 구분 abstract class 클래스명
** 추상클래스특성 **
1) 클래스 내부에 추상메서드가 한개라도 존재하면 추상클래스다.
ex) abstract class 추상클래스명
2) 추상클래스를 상속받은 자식클래스는 무조건 추상메서드를 반드시 오버라이딩을 한다.
3)객체를 생성할 수 가 없다.
4)사용목적: 설계를 목적으로 사용한다.
자바에서는 인터페이스라는 개념이 존재한다. 인터페이스는 자바에서 다중 상속을 지원하는 방법이고, 추상 클래스와 비슷하게 설계를 위해 사용한다.
** 인터페이스(Interface) **
1.추상클래스와 사용목적이 같다.(=>설계목적)=>공통점
2.형식
interface 인터페이스명{
//멤버변수->상수만 가능->static final를 이용해서 상수선언
//추상메서드만 선언이 가능(100%)->일반메서드 사용X
}
3.인터페이스의 추상메서드는 예약어 abstract을 사용하지 않는다. (구분할 필요없다)
public (static final) 타입 상수이름=값
생략가능
=>public 타입 상수이름=값 으로 인식
public (abstract) 메서드명;
생략가능
4. 클래스에서 implements를 통해 불러온다.
Class A implements 인터페이스명
추상클래스와 공통점
4.인터페이스를 상속받은 자식클래스는 역시 인터페이스에서 선언된 추상메서드를 반드시 오버라이딩해야 한다.
(강제성,통일성 부여)
5.객체를 생성하지 않는다.
추상클래스와의 차이점
1.일반메서드도 포함시킬 수 있다. -> 인터페이스는 추상메서드만 작성
2.추상클래스->단일 상속만 가능
->인터페이스 다중상속 가능
'Java > Java' 카테고리의 다른 글
Java - static(정적) (0) | 2020.08.23 |
---|---|
Java - final (0) | 2020.08.23 |
Java - 접근지정자 (0) | 2020.08.23 |
Java - 상속(2) - super() (0) | 2020.08.23 |
Java - 상속(1) (0) | 2020.08.23 |