2024-10-31




인터페이스 output1() 메서드 재정의
인터페이스 output2() 메서드 재정의
package interfaces;
/*
* 인터페이스(interface)?
* 1. 완벽한 추상화를 제공한다.
* ==> - 일종의 추상 클래스. 하지만 추상 클래스보다
* 추상화 정도가 더 높다.
* - 실제로 구현된 것은 전혀 없는 기본 설계도
* (알멩이 없는 껍데기)
* - 추상 메서드와 상수만을 멤버로 갖는다.
* - 인스턴스를 생성할 수 없고, 클래스 작성에 도움을
* 줄 목적으로 사용이 됨.
* - 미리 정해진 규칙에 맞게 구현하도록 표준을 제시
* 하는데 사용이 됨. ==> 명세서
* 2. 모든 메서드가 추상화(추상메서드)이다.
* 3. 프로젝트 진행 시 표준 규약에 따른다.
* ==> 추상 클래스 보다 더 많이 사용 됨.
* 4. 인터페이스는 상수와 추상메서드로만 구성이 되어 있음.
* 5. 모든 변수는 상수가 된다.
* 예) public static final 로 인식을 함.
* 6. 모든 메서드는 추상 메서드가 된다.
* 예) public abstract 로 인식을 함.
* 7. 인터페이스는 객체 생성이 불가능함.
* 8. 자식 클래스로 상속을 하여 자식 클래스에서 객체 생성.
* ==> 인터페이스의 추상 메서드는 반드시 재정의(강제성이 부여됨).
* 9. 인터페이스는 다중 상속을 제공함.
* 10. class -> interface 키워드 사용.
* extends -> implements 키워드 사용.
*
* ※ 인터페이스 사용 목적
* - 스펙을 주어 클래스들이 그 기능을 서로 다르게 구현할 수
* 있도록 하는 클래스의 규약 선언이며, 클래스의 다형성을
* 실현하는 도구임.
*
* [인터페이스 장점]
* 1. 개발 시간을 단축할 수 있음.
* 2. 표준화가 가능함.
*/
public interface Inter {
int num = 150; // 인스턴스 멤버변수
void output1(); // 추상 메서드
void output2(); // 추상 메서드
}
package interfaces;
public class Sub implements Inter {
@Override
public void output1() {
System.out.println("인터페이스 output1() 메서드 재정의");
}
@Override
public void output2() {
System.out.println("인터페이스 output2() 메서드 재정의");
}
}
package interfaces;
public class Inter_01 {
public static void main(String[] args) {
// 인터페이스는 객체 생성이 불가능
//Inter inter = new Inter();
Sub sub = new Sub(); // 자식클래스를 이용하여 객체 생성
// static final 로 인식을 함. 변경 불가능.
//sub.num = 237;
sub.output1();
sub.output2();
}
}'Java > 기초 내용 정리' 카테고리의 다른 글
| Java(Class2)_Exam_01 (0) | 2024.10.31 |
|---|---|
| Java(Class2)_Interface_02 (0) | 2024.10.31 |
| Java(Class2)_abstract_03 (0) | 2024.10.31 |
| Java(Class2)_abstract_02 (0) | 2024.10.31 |
| Java(Class2)_abstract_01 (0) | 2024.10.31 |