본문 바로가기
JAVA

[자바 ⑦] 자바 JAVA 이론 (추상 메소드 / 추상 클래스 / 인터페이스 )

by 비전공자 기록광 2021. 6. 22.
반응형

2021.06.17 - [IT 독학/JAVA] - [자바 ①] 자바 JAVA 이론 (객체지향언어 / 변수 / 연산자)

2021.06.18 - [IT 독학/JAVA] - [자바 ②] 자바 JAVA 이론 (제어문 / 조건문 / 반복문 / 분기문 )

2021.06.18 - [IT 독학/JAVA] - [자바 ③] 자바 JAVA 이론 (배열)

2021.06.19 - [IT 독학/JAVA] - [자바 ④] 자바 JAVA 이론 (객체 / 클래스 / 메소드 )

2021.06.19 - [IT 독학/JAVA] - [자바 ⑤] 자바 JAVA 이론 (객체의 특징 / 추상화 / 캡슐화 / 상속 / 다형성 )

2021.06.22 - [IT 독학/JAVA] - [자바 ⑥] 자바 JAVA 이론 (오버로딩 / 오버라이딩)

 

추상 Abstract

추상이라는 기법은 미완성적인 개념이다.

추상 기법은 추상 클래스와 메소드로 구현 된다.

 

  • 추상 메소드

추상 메소드는 구현부를 가지지 않는 몸체 없는 미완성 메소드이다. 

 

 

  • 추상 클래스

추상 클래스는 선언이 되어 있지만 구현되지 않은, 몸체 없는 메소드를 포함한 미완성 클래스이다. 

 

추상 메소드를 가진 추상 클래스는 상속을 통해 상속받은 하위 클래스에서 구현된다.

결국 추상클래스를 하위 클래스를 작성하기 위한 템플릿, 하위 클래스에 조건을 상속해주는 참조 변수 용도로 사용한다고 보면 된다.

 

추상 클래스를 통해 우리는 일관된 인터페이스를 제공하고 하위 클래스에는 꼭 필요한 기능(메소드)를 강제성을 가지고 상속시켜줄 수 있다.

 

 

+추상클래스 & 메소드 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public abstract class Bank {
    
    //멤버변수
    String name;
    String account;
    int balance;
    
    //기본 생성자    
    public Bank() {
        super();
    }
    
    //매개변수 생성자
    public Bank(String name, String account, int balance) {
        super();
        this.name = name;
        this.account = account;
        this.balance = balance;
    }
    
    //메소드
    //입금
    public void in() {
        System.out.println("--money deposit--");
    }
    
    
    //출금
    public void out() {
        System.out.println("--money withdraw--");
    }
    
    //추상메소드
    //적금
    public abstract void saving();
    
    //적금 해지
    public abstract void cancel();
    
    
    
    //정보출력
    public void getInfo() {
        System.out.printf("name : %s\n", name);
        System.out.printf("account : %s\n", account);
        System.out.printf("balance : %s\n", balance);
    }
 
}
 
 
cs

 

+ 추상클래스를 상속받은 하위 클래스 > 오버라이딩이 강제화 됨

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MyBank extends Bank{
 
    public MyBank(String name, String account, int balance) {
        super(name, account, balance);
    }
 
    @Override
    public void saving() {
        System.out.println("--money saving--");
    }
 
    @Override
    public void cancel() {
        System.out.println("--money saving cancel--");        
    }
 
    
}
 
 
cs

 

 

인터페이스 Interface

인터페이스란 상수형 필드와 추상 메서드만 가진 추상클래스이다. 

 

인터페이스는 생긴 건 클래스와 비슷하지만 객체를 생성할 수도, 메소드를 호출해 사용할 수도 없다.

인터페이스는 상속받은 클래스에서 구현되는 것이다.

 

 

비유하자면 인터페이스는 작업명세서라고 볼 수 있다.

작업명세서에 따라 일관된 형식으로 된 다양한 타입의 객체를 가질 수 있다는 것이 인터페이스의 사용 이유이다.

 

 

인프런

 

+참고

인프런 강의

https://inf.run/Cwif

 

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!! - 인프런 | 강의

Java 기본 개념, 이 강의에서 한 번에 잡아요. 또한 학사관리 프로그램, 어린이집 식대 관리 등 예제 실습을 통해 배운 내용을 바로 내 것으로😀, 개발자가 가장 많이 사용하는 언어. 자바를 Java봐

www.inflearn.com

 

반응형

댓글