하고재비

[JAVA]추상클래스와 인터페이스 본문

JAVA

[JAVA]추상클래스와 인터페이스

DeadDE 2017. 12. 13. 14:11

1. 추상클래스(abstract)


1-1. 추상클래스란?


일반적인 클래스의 추상화 버전,

추상 : 여러가지 개념이나 사물에서 공통되는 특징 혹은 속성을 추출,

일반클래스와는 다르게 구현되지않은 메서드(추상메서드)를 포함할 수 있다.

추상클래스 자체를 객체로 생성할수 없다. 반드시 추상클래스를 상속받는 클래스를

만든 후, 클래스에 선언되는 모든 추상메서드를 오버라이딩하여 구현하여야 한다. 


1-2. 추상클래스 사용 이유


추상클래스에서 공통부분의 설계와 구현이 완료되면 서브클래스에서 상속받아 기능 확장.

공통상황이 한 곳에 관리되어 개발 및 유지보수 용이

프로그램의 구체화 및 동일한 규격으로 만들만한 가이드 제공

1
2
3
4
5
6
7
8
9
10
11
12
13
14
abstrct class MyAbstractClass{
Int num1, num2;
Int result;
Void calc() {
    result = num1+num2;
}
abstract int getResult();
}
 
Class MyClass extends MyAbstractClass{
    int getReult(){
    return “결과: ” + result;
    }
}
cs

2. 인터페이스


2-1. 인터페이스란?


일반메서드를 포함할 수 없으며, 모두 추상메서드로 구성

필드는 상수만 가능(pulbic, static, final)

추상클래스 자체를 객체로 생성할수 없다. 

반드시 인터페이스를 "implements"로 상속받는 클래스를 만든 후 객체생성 가능


1
2
3
4
5
6
7
8
9
10
Interface MyInterface {
public static final num1= 1000;
public abstract int getResult();
}
 
class MyClass implements MyInterface {
    public int getResult() {
        return num1 + 300;
    }
}
cs



'JAVA' 카테고리의 다른 글

[JAVA]ArrayList  (0) 2017.12.13
[JAVA]Comparable , Comparator  (0) 2017.12.13
[JAVA] 생성자  (0) 2017.12.08
[JAVA] 메소드 오버라이딩 과 오버로딩  (0) 2017.12.07
[JAVA] 상속  (0) 2017.12.07
Comments