Java(Class2)_Interface_01

2024. 10. 31. 19:35·Java/기초 내용 정리

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
'Java/기초 내용 정리' 카테고리의 다른 글
  • Java(Class2)_Exam_01
  • Java(Class2)_Interface_02
  • Java(Class2)_abstract_03
  • Java(Class2)_abstract_02
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Java(Class2)_Interface_01
상단으로

티스토리툴바