퀴즈 피드백
return의 활용
: 값을 return해서 활용하면 정보 확인용, 검증용, 비교용 등으로 다양하게 쓰일 수 있음. 하지만 내부에서 값을 출력하고 끝나버리면 사용용도가 고정된다.
java의 모든 클래스는 Object라는 클래스를 상속 받는다
Sample이라는 클래스의 생성
class Sample(extends Object) {
}
스마트폰 객체의 형성 (액정, 배터리, 카메라 객체를 받아서 저장)
액정 클래스 - 액정의 기본 기능
액정을 상속 받은 강화유리, 주변반사 클래스 - 세부기능 구현
배터리 클래스 - 배터리의 기본 기능 (ex. 충전)
배터리를 상속받은 삼성, 애플 클래스들 - 메소드를 재정의해서 세부 기능을 구현 (ex. 무선충전)
자식클래스 변수 = (자식클래스) 부모클래스타입;
-> 자식 타입이 부모 타입으로 변환된 상태
ex.
// class B가 class A를 상속받았다
1. A a = new B(); // B가 부모 타입인 A로 자동 변환
2. B b = (b) a; // a를 자식 타입인 b로 강제 변환
* 1이 선행되어야 2가 가능하다 (a가 자식이 있음을 인지하고 있어야 강제 변환 가능)
boolean result = 좌향(객체) instanceof 우향(타입)
추상 : 실체들 간에 공통되는 특성을 추출한 것 (ex. 삼성, 현대, LG -> 회사)
추상 클래스
: 실제 클래스들의 공통되는 필드와 메소드 정의한 클래스
: 추상 클래스는 실체 클래스의 부모 클래스 역할
: 추상 클래스는 공통되는 필드와 메소드를 추출해서 만들었기 때문에 new 연산자를 통해 객체를 직접 형성할 수는 없다.
: 실체를 가진 자식이 접근해야만 가능 (상속을 통해서 자식 클래스만 만들 수 있다)
public abstract class Phone {
// 필드
public String owner;
// 생성자
public Phone(String owner) {
this.owner = owner;
}
// 메소드
public void turnOn() {
System.out.println("전원을 켭니다");
}
// 추상 메소드 (자식 클래스에서 반드시 재정의 필요)
public abstract void touch(); // 중괄호 생략
}