[JAVA][패스트캠퍼스]추상클래스
추상클래스
- 추상 메서드를 포함한 클래스
- 추상메서드 : 메서드 바디(=구현부{})가 없는 메서드
- abstract 예약어 사용
- 추상클래스는 new(인스턴스화)할 수 없음 cf)concrete class
- 객체생성이 불가능한 클래스(=미완성 클래스) -> 추상메서드가 호출되면 안되기 때문에 인스턴스 생성을 못하도록 차단
- 추상클래스는 추상메서드,일반메서드,생성자,인스턴스 변수 등을 가질 수 있다.
- 인스턴스 생성은 불가능하지만 상속은 가능하며 다형성 활용도 가능
추상클래스 구현
Computer.java
package abstractex;
public abstract class Computer {
//아래 두 메서드는 하위위클래스가 알아서 구현해야되는 메서드
public abstract void display();
public abstract void typing();
//아래 두메서드는 공통으로 쓰이는 메서드
public void turnOn() {
System.out.println("전원을 킵니다.");
}
public void turnOff() {
}
}
DeskTop.java
package abstractex;
//하나의 추상메서드를 포함하면 abstract를 명시해줘야한다.(추상클래스로 선언)
public class DeskTop extends Computer{
public void display() {
System.out.println("DeskTop Display");
}
@Override
public void typing() {
System.out.println("DeskTop Typing");
}
//turnOff클래스를 오버라이딩하여 재정의할 수 있음
@Override
public void turnOff() {
System.out.println("desktop turnoff");
}
}
NoteBook.java
package abstractex;
public class NoteBook extends Computer{
@Override
public void display() {
// TODO Auto-generated method stub
}
@Override
public void typing() {
// TODO Auto-generated method stub
}
}
MyNoteBook.java
package abstractex;
public class MyNoteBook extends NoteBook{
@Override
public void display() {
// TODO Auto-generated method stub
}
@Override
public void typing() {
// TODO Auto-generated method stub
}
}
ComputerTest.java
package abstractex;
public class ComputerTest {
public static void main(String[] args) {
//상위클래스Computer의 변수computer로 하위클래스에 인스턴스가 생성되서 대입될 수 있다.
//상속에서도 그래왔듯이 상속에서도 똑같이 적용됨
Computer computer=new DeskTop();
computer.display();
}
}
메서드와 클래스에 abstract 키워드 사용
추상 메서드가 포함된 클래스는 추상 클래스로 선언
모든 메서드가 구현되었다고 해도 클래스에 abstract키워드를 사용하면 추상클래스
추상클래스의 사용
추상클래스는 주로 상속의 상위클래스로 사용됨
추상메서드 : 하위 클래스가 구현해야 하는 메서드
구현된 메서드 : 하위 클래스가 공통으로 사용하는 기능의 메서드, 하위클래스에 따라 재정의 할 수 있음
Author And Source
이 문제에 관하여([JAVA][패스트캠퍼스]추상클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjhabc2002/JAVA패스트캠퍼스추상클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)