일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 try-catch
- 자바 Random클래스
- 자바 Wrapper클래스
- java super( )
- Java다운캐스팅
- Java문자열 클래스
- 코딩
- DBMS
- 자바 문자열 클래스
- nodejs
- oracle
- Java 추상 메서드
- Java추상클래스
- Express
- 데이터베이스
- 자바 제어문
- 오라클
- 자바 추상메서드
- db
- 자바 스트링클래스
- dbeaver
- database
- Java업캐스팅
- Java try-catch
- Java 내부 클래스
- Java thorw
- Java객체배열
- 자바 내부 클래스
- 자바 예제
- 자바 String클래스
- Today
- Total
코딩이란 무엇일까
[Java/자바]추상 메서드와 추상 클래스 본문
안녕하세요 오늘은 자바에서의 추상 메서드와 추상 클래스에 대해 알아보겠습니다!
추상 메서드란?
추상 메서드 선언 부만 정의하고 구체적인 내용은 비워 놓은 메서드를 말합니다.
추상 메서드를 사용할 때 주의할 점
추상 메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모 클래스의 추상 메서드를 구현해야 합니다.
한마디로 부모 클래스의 추상메서드를 상속받은 자식 클래스는 오버 라이딩을 해주어야 한다는 말이죠!!
추상 메서드 구현 방법
[구조]
abstract 리턴 타입 메서드명 ( );
추상메서드를 사용하려면 abstract라는 키워드를 사용해야합니다.
이 abstract라는 키워드로 아 이 메서드가 추상 메서드구나 라는걸 인지할 수 있는 것이죠
추가적으로 추상 메서드는 { } 이 생략이 가능합니다.
추상 클래스란?
추상 메서드를 알았다면 추상 클래스를 이해하기에 쉽습니다.
추상 클래스란 추상 메서드를 멤버로 갖는 클래스를 추상 클래스라 합니다.
추상 클래스를 사용할 때 주의할 점
추상 클래스의 멤버에는 추상 메서드만 있는 것이 아닙니다.
일반 메서드도 존재할 수 있죠
하지만 중요한 점은 추상 메서드를 하나라도 포함되어있다면 해당 클래스는 추상 클래스가 됩니다.
그리고 가장 중요한 점은 추상 클래스는 객체를 생성할 수 없습니다.
추상 클래스의 구조
[구조]
abstract class 클래스명{
abstract 리턴타입 메서드명();
}
추상 클래스 또한 클래스명 앞에 abstract라는 키워드가 와주어야 합니다.
추상 클래스의 사용목적
그렇다면 추상 클래스는 왜 사용하는 걸까요 그냥 껍데기 같은 느낌인데?
추상 클래스는 구현은 자식 클래스가 하고 부모의 클래스에서는 기능을 비워놓고 싶을 때 사용합니다.
추상 클래스 예시 코드
Main
public class Ex1 {
public static void main(String[] args) {
Pokemon pokemon= new Pikachu();
System.out.println("이 포켓몬은"+pokemon.getName());
pokemon.attack();
pokemon.sound();
pokemon=new Squirtle();
System.out.println("이 포켓몬은"+pokemon.getName());
pokemon.attack();
pokemon.sound();
}
추상 클래스(부모)
abstract class Pokemon{
String name;
abstract void attack();
abstract void sound();
public String getName() {
return this.name;
}
}
abstract void attack();
abstract void sound();
attack( )라는 메서드와 sound( )라는 메서드를 추상 메서드로 만들어 놨습니다. 이렇게 되면 자식클래스가 상속을 받게 되면 위의 두 메서드는 필히 재정의를 해주어야 합니다.
자식 클래스
class Pikachu extends Pokemon{
Pikachu(){
this.name="피카츄";
}
@Override
void attack() {
System.out.println("전기공격");
}
@Override
void sound() {
System.out.println("피카피카");
}
}
class Pikachu extends Pokemon{
Pikachu(){
this.name="피카츄";
}
@Override
void attack() {
System.out.println("전기공격");
}
@Override
void sound() {
System.out.println("피카피카");
}
}
자식 클래스에서 부모 클래스의 추상 메서드인 attack( ), sound( ) 메서드를 재정의 해주었습니다.
출력 결과
자식 메서드에서 오버 라이딩 해준 추상 메서드가 잘 출력되는 것을 볼 수 있습니다!
이상으로 포스팅 마치겠습니다.
글 읽어주셔서 감사합니다~

'Java' 카테고리의 다른 글
[Java/자바]내부 클래스,익명 클래스 (2) | 2022.10.05 |
---|---|
[자바/Java]인터페이스(interface) (1) | 2022.10.05 |
[Java/자바]다형성(polymorphism),업캐스팅(Upcasting),다운캐스팅(Downcasting) (0) | 2022.10.02 |
[Java/자바] 상속과 다형성 (1) | 2022.09.30 |
[Java/자바]클래스-생성자 (1) | 2022.09.30 |