자바 추상클래스및 인터페이스

수민·2022년 5월 11일
0

개발

목록 보기
7/45

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

intanceof를 이용하여 인스턴스의 형 체크

추상클래스
구현코드없이 메소드의 선언만 있는 추상메서드를 포함한 클래스

메서드선언:반환타입,메서드이름 ,매개변수로 구성
메서드정의:메서드구현과 동일한의미 구현부를 가짐

abstract예약어를 사용

  • 메서드에 구현코드가없으면 abstract사용

display메ㅐ서드랑
typing메서드에서 오류가발생 이유는?

바디를 추가하던가, abstract가 되던지해라.
라고 발생하였다 abstract를 추가해줌.

클래스 ,메서드에
abstract를 추가해주니 오류가 없어진다.

computer는 공통으로 쓸부분만 구현해놓은다.

클래스에서 구현하지못한 메서드는 하위클래스에게
책임을 위임한다.

상속받은 사람들이 알아서구현해라.

재정의가능

상속받아서 오버라이딩으로 재정의를 해줌.

오류발생 하나만 재정의했기떄문에 이럴떄는


abstract를 써줌.

추상클래스의 응용-템플릿 메서드 패턴

템플릿메서드
-추상메서드나 구현된 메서드를 활용하여 코드의흐름(시나리오)를 정의하는 메서드
-final로 선언하여 하위클래스에서 재정의 할 수없게함.
-프레임워크에서 많이 사용되는 설계패턴

필요한경우에 재정의를 할수있다.

다음과같이 쓸수있다.

AICar에는 washCar메서드를 따로지정해
사용함.

인터페이스는
모든메서드가 추상메서도로 선언됨-public abstract
모든변수는 상수로 선엄됨 -public static final




하나의 인터페이스를 여러객체가 구현하게되면 클라이언트 프로그램은
인터페이스의 메서드를 활용하여 여러객체를 구현





디폴트메서드
-구현을 가지는 메서드, 인터페이스를 구현하는 클래스들에서 공통으로 사용할 수있는 기본 메서드.
*default키워드 사용

정적메서드
-인스턴스 생성과 상관없이 인터페이스 타입으로 사용할 수 있는 메서드

private메서드
-인터페이스를 구현한 클래스에서 사용하거나 재정의불가
-인터페이스 내부에서만 사용하기위해 구현하는 메서드

array를 받아
sum값을 출력.

여러인터페이스
-자바의 인터페이스는 구현코드가 없으므로 하나의 클래스가 여러 인터페이스를 구현할수 있음.

클래스상속과 인터페이스 구현 같이쓰기

profile
헬창목표

0개의 댓글