Learn/KH정보교육원

[KH정보교육원 당산] 11일차( 상속예제, 인터페이스, 추상클래스)

Dahoon06 2021. 3. 24. 16:41
728x90
반응형

추가 문제 전까지는 어제랑 코드가 같다.

다만 패키지를 다르게 해주었기 때문에

다른 패키지의 클래스를 사용하려면 import를 해주어야 한다.

 

MethodClass

 

출력부분이 어제 수정되었다.

완성된 HTML 이미지를 누르면 관련 뉴스로 이동된다.

 

이 예제에서의 추가문제!!

원하는 카테고리를 입력하여 그 카테고리에 해당하는 뉴스만 모아서 html 생성

 

MainClass

콘솔로부터 입력을 받기위해서 Scanner클래스를 사용.

 

"전체"를 입력받으면 기존에 있던 메소드를 사용하고

그게 아니라면 입력값에 해당 되는 정보를 가져다준다.

 

추가된 메소드

입력값과 파일의 경로 둘 다 받는 메소드를 추가

 

DataClass.news.clear();   =>   ArrayList.clear메소드를 사용하여 기존 값을 초기화 해준다. ( 사진에는 빠져있다.)

초기화를 하지 않으면 기존 데이터 위에 계속 데이터가 추가되서 쌓이기 때문에 데이터 크기가 계속 증가하게된다.

 

콘솔 출력창
"종합지"에만 해당하는 신문사들이있는 HTML파일을 만들어 실행시킨 것

 

상속,구현, 추상 클래스 실습

 

상속(extends) => 주로 객체와 관련

                            객체 : 변수, 메소드, 상수

                            메소드 : 재정의는 선택(자식클래스가 재정의 하고싶으면 한다.)

상속은 한번(단일 상속)만 가능하다.

 

 

구현(implements) => 주로 기능에 관련

                                기능 : 메소드

                                메소드 : 강제 재정의 ( 재정의를 하지 않으면 컴파일에러)

강제 재정의(@Override)

@ : annotation //   Override : 부모의 메소드를 재정의 

오버라이딩는 반드시 상속이 선행조건

오버라이딩 된 메소드의 선언부는 수정이 불가능

 

구현은 한번에 여러 인터페이스를 구현받을 수 있다.

 

 

 

추상클래스(abstract) : 일반 클래스의 기능 + interface 두가지의 성격을 하나로 묶어놓은 클래스

                  내부에 변수,메소드,상수,생성자,추상 메소드 선언이 가능하다.

마찬가지로 추상메소드도 재정의를 해줘야 사용가능

 

단, 생성자는 선언할 수 있지만 일반클래스처럼 new를 이용하여 객체는 생성하지못한다.

=> 생성자는 상속할 때 객체가 만들어져야 하기 때문에 존재(오로지 상속에만 사용가능)

추상클래스는 단독으로 사용하지 못하고, 일반클래스의 부모로만 사용된다.( 즉 상속만 가능!!)

 

 

 

 

728x90
반응형