Java 기초

오늘은 자습, 질문, 과제의 시간이 주어졌다.
점점 난이도가 어려워지고있다. 어떻게 해야하는지 모르겠는 문제가 꽤나 많다. 그래도 수업시간에 예시로 푼 문제랑 노션페이지로 주시는 수업 자료를 참고하면 어느정도는 할 수 있을 정도이다. 앞으로도 화이팅..

온라인

본격적으로 상속, 추상화, 다형성 등 객체 지향 언어를 사용하는 기분을 점점 내고 있다. 오프라인 수업이 온라인 강의를 따라잡았지만 별로 신경 안쓰기로 했다.

  1. 다운 캐스팅과 instance of

다운 캐스팅
업캐스팅된 클래스를 다시 원래의 타입으로 형 변환

하위 클래스로의 형 변환은 명시적

Customer vc = new VIPCustomer();              //묵시적
VIPCustomer vCustomer = (VIPCustomer)vc;      //명시적

instanceof
원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞으면 true 아니면 false

  1. 추상 클래스
  • 구현 코드없이 메소드의 선언만 있는 추상 메소드를 포함한 클래스
  • 메서드에 구현 코드가 없으면 abstract 로 선언
  • abstract로 선언된 메서드를 가진 클래스는 abstract로 선언
  • 모든 메서드가 구현 된 클래스라도 abstract로 선언되면 추상 클래스로 인스턴스화 할 수 없음
  • 추상 클래스의 추상 메서드는 하위 클래스가 상속 하여 구현

위의 유의사항을 신경쓰면서 코드를 작성하면 된다. 하지만 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");
	}
}
profile
이따금씩 올라오는 개발자 블로그

0개의 댓글