iv(인스턴스 변수)는 허용되지 않지만 상수는 사용가능
(상수는 무조건! public static final 타입 상수이름 = 값; )
메소드 선언할떄는 무조건! public abstract 가 앞에 와야합니다.(생략 할 경우 자동으로 붙여짐)
다중 상속이 가능하며, 다른 클래스들과 다르게 Object 클래스를 상속받지 않습니다.
추상클래스
abstract class 이름{
int a; (iv 사용가능)
boolean b;
abstract void haha(); // 추상 메서드
A(){
a = 0;
b = false;
}(생성자 사용가능)
}
인터페이스
interface 이름{
public static final int a = 0; // 상수 사용 가능
public abstract 이름();
}
인터페이스의 다중상속 가능(Object가 최고 조상이 아님)
충돌의 위험이 없기 때문에 가능합니다.
interface C extends A,B{}
인터페이스 구현
class E implements A{(구현)}
class D extends D implements A{}
두 객체간의 연결을 돕는 중개자 역할을 수행합니다.
ex) 우리가 컴퓨터를 사용할 때, 직접 본체에 명령을 내리지 않고 운영체제를 통한 사용자 인터페이스(UI)를 이용하여 컴퓨터를 운용하는 것과 같습니다!
변경에 유리한 유연한 설계가 가능합니다.
표준화가 가능합니다.
ex) jdbc( Oracle이나 MySQL과 같은 데이터베이스의 쿼리 언어는 서로 다를 수 있지만, JDBC를 통해 표준화되어 사용자들이 손쉽게 사용할 수 있게 되는 것처럼 말이죠.)

서로 관계없는 클래스들을 관계를 맺어줄 수 있습니다.
선언과 구현을 분리시킬수 있습니다.
ex)
