오늘은 자습, 질문, 과제의 시간이 주어졌다.
점점 난이도가 어려워지고있다. 어떻게 해야하는지 모르겠는 문제가 꽤나 많다. 그래도 수업시간에 예시로 푼 문제랑 노션페이지로 주시는 수업 자료를 참고하면 어느정도는 할 수 있을 정도이다. 앞으로도 화이팅..
본격적으로 상속, 추상화, 다형성 등 객체 지향 언어를 사용하는 기분을 점점 내고 있다. 오프라인 수업이 온라인 강의를 따라잡았지만 별로 신경 안쓰기로 했다.
다운 캐스팅
업캐스팅된 클래스를 다시 원래의 타입으로 형 변환
하위 클래스로의 형 변환은 명시적
Customer vc = new VIPCustomer(); //묵시적
VIPCustomer vCustomer = (VIPCustomer)vc; //명시적
instanceof
원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞으면 true 아니면 false
위의 유의사항을 신경쓰면서 코드를 작성하면 된다. 하지만 abstract는 인터페이스에 비하면 불편하기 때문에 잘 쓰이지는 않는다고 한다.
public abstract class Computer {
abstract void display();
abstract void typing();
public void turnOn() {
System.out.println("전원을 켭니다.");
}
public void turnOff() {
System.out.println("전원을 끕니다.");
}
}
public class DeskTop extends Computer{
@Override
void display() {
System.out.println("DeskTop display");
}
@Override
void typing() {
System.out.println("DeskTop typing");
}
@Override
public void turnOff() {
System.out.println("Desktop turnoff");
}
}