Must Have 이재환의 자바 프로그래밍 입문 책을 읽고 정리한 글입니다.
**private**
접근 제한자가 쓰인 멤버들은 서브 클래스로 상속되지 않음**extends**
예약어 이용class Marine extends Unit {...}
super
예약어를 사용하여 부모 클래스의 메서드와 자식 클래스의 메서드를 구분함final
은 변수, 메서드, 클래스에 붙이는 예약어임final + 변수
: 상수를 의미, 변경 불가final + 메서드
: 하위 클래스에서 오버라이딩을 할 수 없음final + 클래스
: 상속을 할 수 없음private
이용// 구상 메서드
public int adder (int n1, n2){
return n1 + n2;
}
// 추상 메서드
abstract public int addr (int n1, n2);
추상 클래스는 앞에 abstaract를 붙여 표시함
abstract clss Unit{
String name;
int hp;
abstract void doMove(); // 추상 메서드
}
추상 클래스로는 객체를 직접 형성할 수 없음!
interface A{
int a = 2;
// public static final int a = 2; 를 의미함
void say();
// public abstract void say(); 를 의미함, 추상 메서드
public default void desc(){...;}
// 디폴트 메서드, 기능을 미리 정의할 수 있음
}
extends
예약어 이용implements
예약어 이용interface A{
int a = 2;
void greet();
}
// 인터페이스 상속
interface B extends A{
void bye();
}
// 인터페이스 다중 상속
interface A extends X, Y, Z { ... }
// 인터페이스 구현
class B implements A {
public void say(){
System.out.prinln("Hellow");
}
}
// 다중 인터페이스 구현
class B implements X, Y, Z { ... }
// 클래스의 상속과 인터페이스의 구현 동시 사용
class B extends A implements X, Y, Z { ... }
Super obj = new Sub();
boolean bcheck = obj instanceof Myclass;
boolean bcheck = obj instanceof MyInterface;