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

2025. 9. 17. 17:21·cs/dev
728x90

정리

인터페이스 추상클래스
설계도/틀 상속을 받아 기능을 확장, 복제
모조리 추상메서드 추상메소드 + 일반메서드

인터페이스

인터페이스(자바)는 자바에서 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형

 

단, 클래스와는 달리 인터페이스의 모든 필드는 public static final이어야 하며, 모든 메소드는 public abstract이어야 합니다.

접근제어자 interface 인터페이스이름 {
    public static final 타입 상수이름 = 값;
    ...

    public abstract 메소드이름(매개변수목록);
    ...
}

 

(의문점) 인터페이스도 따지고 보면 상속이지만 extends 키워드 대신 implements 라는 '구현' 이라는 키워드를 사용하는 이유는?

상속은 클래스간의 부모 - 자식 관계를 연관 시키는데 의미가 중점 된다면, 

구현은 클래스를 확장 시켜 다양히 이용하는데 중점이 되기 때문이다.

 

추상클래스

추상메소드

추상메소드 = 빈 껍데기

선언은 되어있는데 코드가 구현되지 않음

public abstarct String getName();//추상메서드

public abstarct String getName() {
	return "hello"; //추상메소드가 아님
}

 

추상클래스를 쓰는 이유?

추상클래스를 상속받은 클래스는

추상 클래스 안에 있는 모든 추상 메서드르 구현해야한다.

인터페이스와 추상클래스의 차이점은?

인터페이스 추상클래스
모조리 추상메서드 추상메소드 + 일반메서드

 

컨셉!

인터페이스: 설계도/틀

추상클래스: 상속을 받아 기능을 확장

public class abstract {
	interface human {//인터페이스
    	abstract public void eat(int food);
        abstarct public void love(String who);
        abstract public String coding();
    }
    
    //추상클래스
    abstract class cat {
    	//일반 메서드
        public void eat(inf fodd) {
        	//... 기능 구현, 함수
        }
        //추상 메서드
        abstract public void love(String who);
       	abstract public void coding();
    }
    class robot extents cat { //추상클래스 상속
    	@Override //추상 메서드만 오버라이드(일반 메소드는 오바라이드X)
        public void love(String who) {
        	//... 기능 구현, 함수
        }
        
        @Override
        public void coding() {
       		//... 기능 구현, 함수
        }
    }
    
    public static void main(String[] args) {
    	cat a = new cat(): //(X)추상 클래스는 인스턴스 생성할 수 없음(추상 메서드에 실행코드가 없을 수 잇어서)
        robot r = new robot(); //인스턴스 생성하려면 상속받은 클래스를 사용
    }
}

 

출처:  팀드모네 IT [5분 자바] 추상메서드는 무엇이고, 인터페이스와 추상클래스의 차이점은?

 

https://www.youtube.com/watch?v=ZXV4XxKFK1A

 

728x90
반응형

'cs > dev' 카테고리의 다른 글

2022년 한이음 ICT 멘토링 후기 [공공데이터를 이용한 마이데이터 서비스 개발]  (0) 2025.09.26
2022년 한이음 ICT 멘토링 후기[챗봇을 활용한 학사관리 시스템 구축]  (0) 2025.09.26
[CS]클래스와 객체, 인스턴스의 차이가 뭔가요?  (0) 2025.09.16
[CS]OOP의 4가지 특징  (0) 2025.09.16
[Spring]spring과 spring boot  (0) 2025.09.16
'cs/dev' 카테고리의 다른 글
  • 2022년 한이음 ICT 멘토링 후기 [공공데이터를 이용한 마이데이터 서비스 개발]
  • 2022년 한이음 ICT 멘토링 후기[챗봇을 활용한 학사관리 시스템 구축]
  • [CS]클래스와 객체, 인스턴스의 차이가 뭔가요?
  • [CS]OOP의 4가지 특징
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    AWS
    Java
    SQL
    Spring
    알고리즘
    docker
    Security
    CS
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
[CS]인터페이스와 추상클래스?
상단으로

티스토리툴바