> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Abstract Class

jini:) 2023. 10. 24. 09:08
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Object Oriented Programming > Java Abstract Class
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

 

Java 추상 클래스는 인스턴스화할 수 없는 클래스입니다. 즉, 추상 클래스의 새 인스턴스를 만들 수 없습니다. 하위 클래스의 기반으로 작동합니다. 이 도전을 시도하기 전에 Java 상속에 대해 배워야 합니다.

다음은 추상 클래스의 예입니다.

abstract class Book{
    String title;
    abstract void setTitle(String s);
    String getTitle(){
        return title;
    }
}

다음 줄과 같이 이 클래스의 인스턴스를 만들려고 하면 오류가 발생합니다.

Book new_novel=new Book();

추상 클래스를 확장하는 다른 클래스를 만들어야 합니다. 그런 다음 새 클래스의 인스턴스를 만들 수 있습니다.

setTitle 메서드도 추상적이고 본문이 없습니다. 즉, 자식 클래스에서 해당 메서드의 본문을 구현해야 합니다.

편집기에서 추상 Book 클래스와 Main 클래스를 제공했습니다. Main 클래스에서 MyBook이라는 클래스의 인스턴스를 만들었습니다. 당신의 임무는 MyBook 클래스만 작성하는 것입니다.

class가 public이면 안됩니다.

 

Sample Input

A tale of two cities

 

Sample Output

The title is: A tale of two cities

 

반응형

 

Code

import java.util.*;
abstract class Book{
	String title;
	abstract void setTitle(String s);
	String getTitle(){
		return title;
	}
	
}

//Write MyBook class here
class MyBook extends Book {
    void setTitle(String s) {
        this.title = s;
    }
}

public class Main{
	
	public static void main(String []args){
		//Book new_novel=new Book(); This line prHMain.java:25: error: Book is abstract; cannot be instantiated
		Scanner sc=new Scanner(System.in);
		String title=sc.nextLine();
		MyBook new_novel=new MyBook();
		new_novel.setTitle(title);
		System.out.println("The title is: "+new_novel.getTitle());
      	sc.close();
		
	}
}

 

 

추상 클래스 (Abstract Class) - 코드에서 'Book' 클래스
일부 메서드가 구현되지 않은 (즉, 추상 메서드를 포함한) 클래스.
직접 객체를 생성할 수 없다. 즉, 인스턴스를 만들 수 없다.
다른 클래스에게 공통된 속성과 메서드를 상속하기 위한 기본 클래스로 사용.
해당 클래스를 확장(상속)하는 하위 클래스에서 추상 메서드를 구체화하도록 강제함으로써 다형성을 지원.
하나 이상의 추상 메서드를 포함.

추상 메서드 (Abstract Method) - 코드에서 'setTitle' 메서드
메서드의 시그니처(이름, 매개변수 유형, 반환 유형)만을 정의하고 메서드의 본문을 구체적으로 구현하지 않음.
하위 클래스에서 추상 메서드를 반드시 구현.

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형