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

[해커랭크(HackerRank) JAVA 풀이] - Java Inheritance I

jini:) 2023. 10. 20. 12:32
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Object Oriented Programming > Java Inheritance I
 

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

 

상속을 사용하면 한 클래스가 다른 클래스의 속성을 얻을 수 있습니다. 다음 Animal 클래스를 고려하십시오.

class Animal{
    void walk(){
        System.out.println("I am walking");
    }
}

이 클래스에는 도보라는 단 하나의 메서드가 있습니다. 다음으로, 우리는 또한 fly 메서드가 있는 Bird 클래스를 만들고 싶습니다. extends 키워드를 사용하여 이 작업을 수행합니다.

class Bird extends Animal {
    void fly() {
        System.out.println("I am flying");
    }
}

마지막으로 날고 걸을 수 있는 Bird 개체를 만들 수 있습니다.

public class Solution{
   public static void main(String[] args){

      Bird bird = new Bird();
      bird.walk();
      bird.fly();
   }
}

 

 

위의 코드는 다음과 같이 출력됩니다.

I am walking
I am flying

즉, Bird 개체에는 Animal 개체가 가진 모든 속성과 몇 가지 추가 고유 속성이 있습니다.

위의 코드는 편집기에서 제공됩니다. Bird 클래스에 sing 메서드를 추가한 다음, 그에 따라 코드가 다음 줄을 인쇄하도록 기본 메서드를 수정해야 합니다.

I am walking
I am flying
I am singing

 

Code

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

class Animal{
	void walk()
	{
		System.out.println("I am walking");
	}
}
class Bird extends Animal
{
	void fly()
	{
		System.out.println("I am flying");
	}
    void sing() {
        System.out.println("I am singing");
    }
}

public class Solution{

   public static void main(String args[]){

	  Bird bird = new Bird();
	  bird.walk();
	  bird.fly();
      bird.sing();
	
   }
}

 

 

상속(Inheritance)
객체 지향 프로그래밍의 중요한 개념.
클래스 간의 계층 구조를 정의.
한 클래스(슈퍼클래스 또는 부모 클래스)의 특성과 메서드를 다른 클래스(서브클래스 또는 자식 클래스)에서 재사용하고 확장하는 메커니즘.
코드의 재사용성 높임.
서브클래스는 슈퍼클래스의 모든 특성을 상속받아 사용.
경우에 따라 메서드를 재정의(오버라이딩)하여 자체 동작을 정의.
소프트웨어의 유지보수성을 개선, 코드의 일관성 유지.

  • 슈퍼클래스와 서브클래스 : 상속은 두 개의 클래스 간의 관계를 정의. 슈퍼클래스(부모 클래스)는 일반적인 특성을 가지고 있고, 서브클래스(자식 클래스)는 슈퍼클래스의 특성을 상속받거나 확장.
  • extends : 상속을 정의하기 위해 자바에서 사용하는 키워드. 즉, class SubClass extends SuperClass와 같이 선언.
  • 메서드와 필드 상속 : 서브클래스는 슈퍼클래스의 메서드와 필드를 상속받아 사용. 이로 인해 코드의 재사용이 가능하며, 중복 코드를 줄임.
  • 메서드 오버라이딩(Overriding) : 서브클래스에서 슈퍼클래스의 메서드를 재정의하여 서브클래스의 동작을 정의. 다형성 지원. 런타임에 서브클래스의 메서드가 호출.
  • 생성자 상속 : 서브클래스는 슈퍼클래스의 생성자를 호출하여 초기화. 이를 통해 초기화 논리를 재사용. 필요한 경우 서브클래스 고유의 초기화 작업을 수행.
  • 다중 상속 제한 : 자바에서는 다중 상속을 지원하지 않음. 클래스는 하나의 슈퍼클래스만 상속 가능. 이로써 다중 상속으로 인한 복잡성과 모호성을 방지.
  • 추상 클래스와 인터페이스 : 상속과 관련된 개념을 확장할 때 사용. 추상 클래스는 일부 메서드를 구현하고 나머지를 추상 메서드로 선언. 인터페이스는 모든 메서드가 추상 메서드로 선언.

 

 

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

 

 

 

728x90
반응형