관리 메뉴

IT journey

13일차 추상클래스, 인터페이스 본문

끄적끄적/JAVA

13일차 추상클래스, 인터페이스

step 2021. 7. 14. 22:07
728x90
반응형

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :)

아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다.

12일차 제어문 3편,배열 2편, 상속

 

12일차 제어문 3편,배열 2편, 상속

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 11일차 제어문 2편, 배열 1편 11일차 제어문 2편

step-journey.tistory.com

11일차 제어문 2편, 배열 1편

 

11일차 제어문 2편, 배열 1편

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 10일차 제어문 1편 10일차 제어문 1편 직접 내

step-journey.tistory.com

10일차 제어문 1편

 

10일차 제어문 1편

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 9일차 연산자(feat. if문) 9일차 연산자(feat. if문

step-journey.tistory.com

9일차 연산자(feat. if문)

 

9일차 연산자(feat. if문)

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 8일차 아스키코드 8일차 아스키코드 직접 내

step-journey.tistory.com

8일차 아스키코드

 

8일차 아스키코드

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 7일차 자바 실습 예제 7일차  자바 실습 예제

step-journey.tistory.com

7일차 자바 실습 예제

 

7일차  자바 실습 예제

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 6일차 자바 소스 코드를 작성하는 규칙 6일차

step-journey.tistory.com

6일차 자바 소스 코드를 작성하는 규칙

 

6일차  자바 소스 코드를 작성하는 규칙

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 아래에 있는 이전 발행글을 참고하시면 소스코드를 작성하는데 도움이 됩니다. 5일차 자바의 자료형(feat.생성자) 5일차 자바

step-journey.tistory.com

5일차 자바의 자료형(feat.생성자)

 

5일차 자바의 자료형(feat.생성자)

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ★ 꼭 !! 지켜야 할 사항 ★ 아래에 있는 1일차,2일차,3일차,4일차 내용을 우선적으로 보고 오세요. 1일차 1일차 직접 내용 정리

step-journey.tistory.com

4일차 자바의 클래스

 

4일차 자바의 클래스

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ★ 꼭 !! 지켜야 할 사항 ★ 아래에 있는 1일차,2일차,3일차 내용을 우선적으로 보고 오세요. 1일차 1일차 직접 내용 정리하고

step-journey.tistory.com

3일차

 

3일차

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ★ 꼭 !! 지켜야 할 사항 ★ 아래에 있는 1일차,2일차 내용을 우선적으로 보고 오세요. 1일차 1일차 직접 내용 정리하고 만든

step-journey.tistory.com

2일차

 

2일차

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ★ 꼭 !! 지켜야 할 사항 ★ 1일차 내용을 우선적으로 보고 오세요. 1일차 1일차 직접 내용 정리하고 만든 예이니 퍼가실 때는

step-journey.tistory.com

1일차

 

1일차

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 1.1 컴퓨터 1. 종류 데스크탑(Desktop), 노트북(Laptop), 핸드폰(Smart Phone), 테블릿입니다. 2. 구조 입출력 장치(모니터, 키보드, 마우

step-journey.tistory.com

JAVA - 클래스

 

JAVA - 클래스

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 클래스 ○객체를 만드는 기능을 합니다. ○ 클래스는 객체의 틀이 되는 추상적인 개념이고 객체는 클래스에 정의된 요소들의

step-journey.tistory.com

JAVA-제어문(feat.파일 입출력)

 

JAVA-제어문(feat.파일 입출력)

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 참고사항 제어문에 들어가기 전, 증감연산자, 비교(관계)연산자와 논리연산자에 대해 올린 C언어-연산자 편을 참고하시면

step-journey.tistory.com

JAVA-자료형

 

JAVA-자료형

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 1. print(), println(), printf() 의 차이 print() 출력 후 줄을 바꾸지 않습니다. println() 출력 후 자리를 바꿉니다. printf() printf("출력..

step-journey.tistory.com

 

728x90

추상클래스

1. Overriding(오버라이딩)은 

상속 관계에서 일어나는 일입니다. 이 때의 키워드는 extends , implements입니다.

오버라이딩 한 함수 위에는 @Override라고 써 주어야 합니다.

 

2. 추상클래스를 사용하고자 할 때에는 상속하는 방법이 있습니다.

추상클래스가 클래스이므로 extends 키워드를 사용해서 상속해야 하며, 

추상클래스를 상속하면 자식 클래스에 추상함수는 꼭 오버라이딩을 해주어야 합니다.

 

3. 추상함수를 만들려면 클래스도 추상 클래스여야 합니다.

추상함수는 함수에 {}  없습니다. 이를 사용할 때는, 추상 클래스를 extends 키워드를 이용해 상속 후 자식클래스에 추상 함수를 오버라이딩해서 {}를 추가해서 구현체를 만듭니다.

물론, 추상클래스에서도 일반함수를 쓸 수 있습니다.

package a.b.c.example;

public class AbstractEx extends AB
{
	@Override
	public void ab(){
		System.out.println("추상함수를 자식클래스로 오버라이딩할 때 abstract 키워드 제거");
	}
	public static void main(String[] args) {
		//TODO Auto-generated method stub.
		
        // 부모클래스 참조변수 = new 자식클래스();
		AB ab1 = new AbstractEx();
		ab1.ab();

		AB.abStatic();
	}
}

abstract class AB
{
	public abstract void ab();

	public void abM(){
		System.out.println("추상클래스 AB에 있는 일반함수 abM()");
	}

	public static void abStatic(){
		System.out.println("static 일반함수 abStatic()으로 변경금지");
	}
}

 

인터페이스

1. 인터페이스 클래스는 상수와 추상함수가 합쳐진 형태로 생각하면 됩니다.

이 때, 상수는 public final 데이터타입 대문자_대문자 = 리터럴; 로 씁니다.

추상함수는 [접근제한자] 리턴형 함수이름(); 으로 씁니다.

2. 인터페이스 클래스에 있는 추상함수를 쓸 때는 인터페이스클래스이름Impl에 구현체를 만들어서 사용해야 합니다.

package a.b.c.example;

public class Thanks implements G_interface, A_interface
{
	@Override
	public void g(){
		System.out.println("고마워요, g함수");
		
	}

	@Override
	public void a(){
		System.out.println("이건 a()함수입니다.");		
	}

	public static void main(String[] args) {
		
		G_interface gi = new Thanks();
		gi.g();
		A_interface ai = new Thanks();
		ai.a();

	}
}

interface G_interface
{
	public void g();
}


interface A_interface
{
	public void a();
}

쓰는 이유

추상클래스와 인터페이스를 쓰는 이유는 자원을 상속해서 쓰기 위해서입니다.(다시 말해, 재사용이 아주 유용하다는 것입니다.)

728x90
반응형

'끄적끄적 > JAVA' 카테고리의 다른 글

15일차 참조변수  (12) 2021.07.17
14일차 생성자  (8) 2021.07.15
12일차 제어문 3편,배열 2편, 상속  (3) 2021.07.13
11일차 제어문 2편, 배열 1편  (6) 2021.07.12
7일차 자바 실습 예제  (8) 2021.07.06
Comments