추상 메소드란 값을 정의하기 애매할때 상속되는 클래스들에게 직접 값을 부여하라고 만들어놓는
메소드 입니다.
간단하게 Animal이라는 추상클래스를 하나 만들어보자
추상클래스는 최소 하나이상의 추상메소드를 가져야하기에
나느 추상메소드로 hunt를 만들어보았다
추상메소드는 선언만 가능하기에 안에 기능은 넣지않고
이대로 human클래스와 tiger클래스에게 상속을 시켜보았다
추상클래스를 그냥 상속하면 빨간줄이 생기는데 이때에 해결방법이 두가지가 있다.
첫번째는 자식클래스도 추상클래스로 만들어 버리는 방법이다 그 방법으로
human클래스를 만들어보자
위와같이 그냥 추상클래스를 상속하려고하니 빨간줄이뜬다
abstract라는 키워드로 자식클래스도 추상클래스를 만들어줘 해결해보았다
두번째 방법으로 추상클래스의 추상메소드를 오버라이드하여 문제를 해결할수가있다
그 방법으로 tiger 클래스를 만들어보자
추상메소드였던 hunt를 오버라이드하여 구현메소드로 수정하였더니 해결되었다.
조금더 이해해보기 위해 연습문제를 풀어보자.
MyNoteBook
더보기
package basic.ch21;
public class MyNoteBook extends NoteBook{
@Override
public void typing() {
System.out.println("편하게 무선키보드 샀습니다");
}
@Override
public void display() {
System.out.println("모니터 큰걸로 샀습니다.");
}
}
NoteBook
더보기
package basic.ch21;
public abstract class NoteBook extends Computer{
@Override
public void typing() {
System.out.println("키보드가 불편합니다.");
}
}
DeskTop
더보기
package basic.ch21;
public class DeskTop extends Computer {
@Override
public void display() {
System.out.println("모니터가 따로있습니다");
}
@Override
public void typing() {
System.out.println("타이핑이 편합니다");
}
}
Computer
더보기
package basic.ch21;
public abstract class Computer {
public abstract void display();
public abstract void typing();
public void turnOn() {
System.out.println("컴퓨터를 킵니다");
}
public void turnOff() {
System.out.println("컴퓨터를 끕니다");
}
}
'Java' 카테고리의 다른 글
String,String Buffer (0) | 2024.04.29 |
---|---|
인터페이스 (0) | 2024.04.26 |
다형성의 활용(연습문제) (0) | 2024.04.24 |
다형성 (0) | 2024.04.24 |
연관관계 (0) | 2024.04.24 |