[Java] Abstract Class(추상 클래스)👥 / Interface

soyeon·2022년 7월 12일
0
post-thumbnail

Abstract Class

: abstract method가 단 1개라도 class 내부에 존재하면 된다.

이 class로부터는 instance를 생성할 수 없다. 상속할 때 상위 class로 사용된다. 기능의 이름은 같은데 세부 구현이 다를 때 사용한다.

abstract method
: method의 선언만 존재하고, 정의가 없다. method가 하는 일이 정해지지 않았다. 추상메소드이면 abstract 키워드를 꼭 붙여야 한다.

public abstract void printAll();  // abstract method
  • Abstract Class code
package lecture0712;

// 추상 클래스(abstract class)
public abstract class UpperClass {
	
	// field
	String name;
	int age;
	
	// method
	public abstract void printAll();  // abstract method
}

class SubClass extends UpperClass {
	
	@Override
	public void printAll() {
		
	}
}

Interface

추상 class의 아주 특별한 형태

: class 안의 모든 method가 추상 method로 구성되어 있다. 모든 field는 public static final로 구성되어 있다.
interface는 다중 구현이 가능하다.

is-a relationship이 성립한다.

  • Interface code
package lecture0712;

interface myInterface {
	
	// fields
	// public static final
	int kk = 0;
	String aa = "Hello";
	
	// method
	public abstract void printAll();
	
	public abstract void myPrint();
}

public class MyClass implements myInterface{

	@Override
	public void printAll() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void myPrint() {
		// TODO Auto-generated method stub
		
	}
	
}
  • abstract class / interface code
package lecture0713;

class Human {
	
}

interface MyInterface {
	
}

interface Animal {
	
	int weight = 10;
	public static final int age = 20;
	
	// abstract keyword 생략 가능하다.
	public void printName();
	public abstract void printAge();
	
}

class MyClass extends Human implements Animal, MyInterface{

	@Override
	public void printName() {

		
	}

	@Override
	public void printAge() {

		
	}	
}

public class Main {

}

0개의 댓글