Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring
- pom.xml
- 리액트
- 영속성 컨텍스트
- list
- @transactional
- 깃허브
- Spring legacy Project
- 인터페이스
- 어노테이션
- DI
- mysql
- merge
- 이클립스
- 빈
- 스프링
- JVM
- 의존성주입
- @Bean
- 객체
- react
- 자동주입
- 트랜잭션
- Spring 개발환경 설정
- github
- springboot
- java
- 스프링 컨테이너
- 상속
- 자바
Archives
- Today
- Total
DEVLOG
추상 (Abstract) 본문
자바에서는 미완성의 클래스라고 할 수 있는 추상 클래스를 제공
직접적으로 객체 인스턴스를 생성할 수 없으나, 새로운 클래스를 작성하는데 밑바탕이 되는 역할
미리 설계로서 틀을 갖추고 클래스를 작성할 수 있게 한다는 기능적인 측면에서 의미가 있음
추상 클래스를 사용하려면 반드시 상속을 받아야 하며, 모든 추상 메소드는 반드시 구현을 해주어야 한다.
추상 클래스에서 public void 메소드를 사용한다면 구현까지 해주어야 한다.
추상클래스 Player.java
// 추상클래스
abstract class Player {
// 추상메소드
abstract void play(String songName);
abstract void pause();
abstract void stop();
}
Main.java
// Add unimplenented methods
// 추상클래스 상속하면 구현 안된 추상메소드 반드시 구현해줘야 함
public class Main extends Player{
public static void main(String[] args) {
// static메소드에서 다른 메소드 호출하려면 다른 메소드 역시 static 선언되어야 함
// 대안으로 main 클래스의 인스턴스를 만들면 사용 가능
Main main = new Main();
main.play("화이트 - 네모의 꿈");
main.pause();
main.stop();
}
@Override
void play(String songName) {
System.out.println(songName + " 곡을 진행합니다.");
}
@Override
void pause() {
System.out.println("곡을 일시정지합니다.");
}
@Override
void stop() {
System.out.println("곡을 정지합니다.");
}
}
추상클래스 Animal.java
// 추상클래스
abstract class Animal {
abstract void crying(); // 추상메소드
}
Dog.java
public class Dog extends Animal{ // 추상클래스 상속
// 추상메소드 구현
@Override
void crying() {
System.out.println("월! 월!");
}
}
Cat.java
public class Cat extends Animal{ // 추상클래스 상속
// 추상메소드 구현
@Override
void crying() {
System.out.println("냐옹~");
}
}
Main.java
// Add unimplenented methods
// 추상클래스 상속하면 구현 안된 추상메소드 반드시 구현해줘야 함
public class Main{
public static void main(String[] args) {
// 인스턴스화
Dog dog = new Dog();
Cat cat = new Cat();
// 추상메소드 호출
dog.crying();
cat.crying();
}
}
'Java' 카테고리의 다른 글
인터페이스(Interface) (0) | 2022.05.23 |
---|---|
Final 키워드 (0) | 2022.05.21 |
객체지향 프로그래밍 - 6. 상속(2) (0) | 2022.05.21 |
객체지향 프로그래밍 - 6. 상속(1) (0) | 2022.05.20 |
객체지향 프로그래밍 - 5. 클래스 / 객체 / 인스턴스 차이 (0) | 2022.05.20 |
Comments