Class의 상속
기존 클래스를 사용하는 방법은 객체를 생성하는 방법과 상속하는 방법이 있다.
class 생성할 클래스명{
}
class 생성할 클래스명 extends 상속할부모클래스명{
}
위 처럼 extends 확장자를 통해서 클래스 상속이 가능하다.
사실 자바는 기본적으로 모든 클래스가
객체 활용의 편리성(다형성, 폴리모피즘)을 위해java.lang.Object 라는 최상위 클래스를 부모클래스로
가지고 있다.
다형성이란 조상 유형의 변수로 자손객체를 참조할 수 있는 기능
TV saletv = new SaleTV(300000,"SALETV-1",40,1);
TV rentaltv = new RentalTV(100000,"RENTALTV-10",42,1);
조상유형인 TV클래스 유형으로 자식 클래스 SaleTV, RentalTV를 참조하고 있다.
만약 다형성이 적용되지 않으면 자식 클래스마다 매소드를 새로 만들어야하는 불편함이 생김
조상 유형의 변수에는 해당조상유형의 객체 뿐만 아니라
자손의 객체를 전달 할 수도 있다.
따라서 부모클래스를 따로 지정하지 않은 클래스는 java.lang의 Object이라는 클래스의 자식이 되고,
extends java.lang.Object라는 코드가 컴파일 시에 클래스 명 뒤에 붙는다.
접근제어자와 활용제어자
🛠️접근제어자
(+)public : 접근을 제한이 없음,
다른 패키지에서도 사용가능
(#)protected : 동일한 패키지 내에 존재하거나 자식클래스에서만 접근 가능
default : 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에서만 접근이 가능
(-)private : 자기 자신의 클래스 내에서만 접근이 가능
public > protected > default> private 순으로 접근 범위가 넓다.
🛠️활용제어자
final: final -상수(변할 수 없는 값이 된다)
필드/지역변수, 메서드, 클래스에 붙을 수 있음
abstract: 추상적인(완전하지 않은) 이라는 뜻으로 반드시 부모클래스를 상속받아서만 쓸 수 있다. 메서드나 클래스 앞에 붙는다
static :static으로 지시된 특정한 멤버가 해당 클래스의 인스턴스가 아니라
클래스 자체에 속해 있음을 나타내는 자바 키워드다.
필드,메서드,클래스