추상클래스
추상클래스
abstract class class_name{ }
- 객체 생성에서 사용 할 수 없음
왜 만드나?
- 자식클래스에 어떤 메소드를 만들어야하는지 예시를 들어줌
- 상속받는 클래스에서 오버라이딩을 통해서 내용을 만들어줌
추상메서드
abstract void method_name( );
package f_oop2;
public abstract class Animal { // 추상 클래스
void run(){
System.out.println("달려간다~");
}
abstract void sound(); // 추상메서드
}
class Dog extends Animal{
@Override
void sound(){
System.out.println("멍멍!!");
}
}
class Bird extends Animal{
@Override
void sound(){
System.out.println("짹짹");
}
}
인터페이스
interface SampleInterface { }
- 인터페이스의 모든 멤버 변수는 public static final 제어자를 사용한다.
- 모든 멤버변수의 제어자가 같기때문에 생략가능
- 인터페이스의 모든 멤버 메소드는 public abstract 제어자를 사용한다
- 모든 멤버메소드의 제어자가같기때문에 생략가능
클래스가 인터페이스를 상속받을때
class CLASS_NAME implements INTERFACE_NAME1
[,INTERFACE_NAME2] { }
- 클래스에서 인터페이스 여러개를 상속받을수 있음.
내용이 없어서 같은 메소드의 이름도 상속 가능
package f_oop2;
public interface SampleInterface {
public static final int NUM1 = 1;
int NUM2 = 2;
public abstract void method1();
void method2();
}
class SampleImplement **implements** SampleInterface, SampleInterface2{
@Override // 여러개 상속받을수 있음
public void method1() { // 메소드 이름이 중복되어도 이상 없음
}
@Override
public void method2() {
}
@Override
public void method3() {
}
}
interface SampleInterface2{
void method1();
void method3();
}반응형
'IT > JAVA' 카테고리의 다른 글
| [우테캠pro] 프리코스 1주차 - 숫자야구 리뷰 (0) | 2022.10.07 |
|---|---|
| [우테캠pro] 프리코스 1주차 - 학습테스트 (0) | 2022.10.02 |
| [JAVA] 상속 (0) | 2022.01.11 |
| [JAVA] OOP, class (0) | 2022.01.11 |
| [JAVA] 예외처리 (0) | 2022.01.11 |