728x90
추상메소드
- 선언되어 있거나 구현되어 있지 않은 메소드(중괄호가 없는 메소드)
- abstract키워드를 사용하여 선언
ex) public abstract int getValue();
- 추상 메소드는 서브 클래스(자식 클래스)에서 오버라이딩 필수
추상클래스
- 추상메소드를 하나라도 가진 클래스 (완벽하지 않은 추상적인 설계도라 생각하기)
- abstract키워드를 사용하여 선언
ex) public abstract class Parent
추상메소드와 추상클래스 필요성
똑같은 기능이지만 호출하는 이름이 다르기 때문에 약속을 위해 기본적인 기본틀을 만들어줌
public class Volvo extends Car {/// 상속받기위해 extends 사용하지만 오류
// 그이유는 car에 추상적 메소드
//강제적으로 꼭 구현해야 하는 메소드 나오게 하기
@Override
public void runner() {
System.out.println("자율주행하는 runner");
}
public abstract class Car { // 설계도 만들기
// 추상클래스!
// 완벽하지 않은 설계도 >> 미완성의 설계도
// 언제 완성되느냐?? 해당 클래스 물려받은 자식 클래스에서 설계도 완성 진행
// 자동차가 기본으로 가지고 있어야 하는 내용을 정리한 클래스
int tire = 4;
public abstract void runner() ;
// {
// System.out.println("씽씽 앞으로 달리기~!");
// }
// 추상 메소드
// 추상메소드는 상속을 받은 자식 클래스에서 무조건 강제적으로 구체화 할수 있는 강제성을 갖는다.
// 추상적인 내용 외 일반 적인 내용도 들어 갈 수 있음
public void color() {
System.out.println("흰색의 자동차!");
}
}
public class CarMain {
public static void main(String[] args) {
// 객체생성은 완벽히 구현된 클래스에서만 생성이 가능하다.
Volvo volvo = new Volvo();
volvo.runner ();
// 추상클래스는 객체를 생성할 수 없다.
// 설계도로만 기능이 정의된다.
// Car car = new Car();
}
}
연습하기
월급계산 프로그램 만들기 (구체적 클래스> 추상 클래스)
public class RegularEmployee {
//1. 필드 적어주기
private String empno;//사번
private String name; // 이름
private int pay; //연봉
private int bonus; //보너스
// 2. 생성자 메소드 만들기
public RegularEmployee(String empno, String name, int pay, int bonus) {
// super();//부모 클래스의 불러오는 기능
this.empno = empno;
this.name = name;
this.pay = pay;
this.bonus = bonus;
}
// 3.해당 직원의 월급을 계산하는 메소드
public int getMoneyPay() {
// int result = (pay+bonus)/12;
// return result;
// 또는
return (pay+bonus)/12;
}
public String print() {
return empno + ":" +name + ":"+pay;
}
}
public class EmployeeMain {
public static void main(String[] args) {
RegularEmployee regular = new RegularEmployee (" SMHRD001", "홍길동",4000,400);
System.out.println(regular.print());
System.out.println(regular.getMoneyPay());
}
}
출처: 스마트인재개발원
728x90
반응형
'DATA 분석 교육 과정 (2024.02~08) > JAVA' 카테고리의 다른 글
JAVA_OOP (0) | 2024.03.26 |
---|---|
JAVA_JDBC (0) | 2024.03.19 |
JAVA_상속 (0) | 2024.03.18 |
JAVA_Music Playlist 만들기 (0) | 2024.03.18 |
JAVA_Collection, ArrayList (0) | 2024.03.17 |