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 |