- java.lang.Object
- 자바의 모든 클래스는 java.lang.Object 클래스를 상속한다.
- Object 클래스는 toString() 메서드와 equals() 메서드를 포함하고 있다.
- toString() 메서드 : 객체를 읽을 수 있는 문자열로 변환하여 반환하는 메서드
- equals() 메서드 : 동일 참조 주소 또는 동일 값을 가지는 객체인지 구분하고 true/false 반환하는 메서드
- 다형성
- 객체지향 프로그램 언어의 세가지 특징 중 하나 (캡슐화, 상속, 다형성)
- 하나의 객체가 여러 형태를 가지는 객체로 사용할 수 있음을 의미
- 상속을 사용하여 부모 타입으로부터 파생된 여러 타입의 자식 객체를 부모 클래스로 다룰 수 있게 된다.
- 부모 클래스가 상속한 멤버필드/메서드에 대해서만 다룰 수 있다.
- 자식 클래스에 개별적으로 작성된 필드/메서드는 사용할 수 없다.
* 다운 캐스팅 : 부모 객체로 사용하고 있는 인스턴스를 자식 객체로 변환하는 것
명시적으로 작성하여 캐스팅이 이루어지게 한다.(캐스팅 연산 사용)
ex. p1 이 부모클래스 Person의 인스턴스라면 Customer c1 = (Customer)p1;
이런식으로 자식클래스 Customer 인스턴스로 다운캐스팅 해줄 수 있다.
- 추상(abstract) 클래스
- 미완성 클래스로 클래스 안의 메서드가 전부 구현되어 있지 않은 클래스
- 클래스 안의 메서드는 추상 메서드로 선언부만 있고 구현부(몸체) 는 없는 메서드가 0개 이상 존재
- abstract 키워드를 사용하여 생성
- 추상 클래스로는 객체를 생성할 수 없다.
- 참조 타입으로는 사용 가능
- 추상 클래스를 상속하는 일반 클래스는 추상 메서드에 대해서 반드시 구현을 해야하는 강제성이 있다.
- 추상 클래스를 상속하는 자식 클래스들은 일관된 메서드명을 가질 수 있으며 일관된 이름을 가지고
다형성에 적용하여 사용할 수 있게 된다.
- 인터페이스(Interface)
: 추상 클래스처럼 미완성된 클래스로 볼 수 있으나, 다른점은 모든 메서드가 추상 메서드이고 멤버 변수를
포함 할 수 없다. (상수는 포함 가능)
- 모든 메서드는 암묵적으로 public abstract 이다.
- 멤버 변수는 작성할 수 없다.
- 상수는 작성할 수 있으며 암묵적으로 public static final 이다.
- 추상 클래스와 마찬가지로 객체 생성에 사용할 수 없으나 참조 타입으로는 사용 가능
- 인터페이스를 상속하기 위해서는 implements 키워드를 사용
- 1개 이상의 인터페이스를 상속할 수 있다.
'국비' 카테고리의 다른 글
10.27 국비학원 17일차(StringBuilder,StringBuffer클래스, Wrapper클래스, 날짜 클래스) (0) | 2022.10.29 |
---|---|
10.26 국비학원 16일차 (문자열String 클래스) (0) | 2022.10.28 |
10.24 국비학원 14일차 (평가 풀이, 상속, Override) (0) | 2022.10.25 |
10.21 국비학원 13일차 (평가1) (0) | 2022.10.24 |
10.20 국비학원 12일차 (클래스 연습문제3) (0) | 2022.10.21 |