상속과 메소드 오버라이딩 - [Java OOP #4]
7026 단어 beginnersoopcomputersciencejava
계승
"상속"이라는 단어는 조상으로부터 무언가를 물려받는 것으로 정의됩니다. 유사하게 Java에서 이러한 상속 개념은 자식 클래스(하위 클래스라고 함)가 부모 클래스(슈퍼 클래스라고 함)로부터 속성과 메서드를 상속하는 경우에 적용될 수 있습니다.
상속은 비슷한 특성을 가진 개체를 만들려고 할 때 유용하지만 각 개체에는 고유한 추가 기능이 있습니다. 예를 들어,
Bicycle
수퍼 클래스를 가질 수 있지만 특정 유형의 자전거를 정의하기 위해 MountainBicycle
및 RoadBicycle
와 같은 여러 하위 클래스가 필요합니다.아래 예에서는
Cat
키워드를 사용하여 Animal
수퍼 클래스에서 extends
하위 클래스를 생성합니다.class Animal {
public String name;
public int age;
Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("Nom nom.");
}
public String toString() {
return ("Name: " + name + "Age: " + age);
}
}
class Cat extends Animal {
public String colour;
Cat(String name, int age, String colour) {
// invoking superclass' constructor
super(name, age);
this.colour = colour;
}
// Overriding toString() method to print more info
@Override
public String toString() {
return ("Name: " + name + "Age: " + age + "Colour: " + colour);
}
}
public class Test {
public static void main(String args[]) {
Cat cat1 = new Cat("Oatmew", 3, "orange");
System.out.println(cat1.toString());
// calling a method from superclass
cat1.eat();
}
}
참고 사항:
Animal 클래스의
name
및 age
는 비공개인 경우 하위 클래스에서 액세스할 수 없기 때문에 공개로 설정되었습니다. cat1
는 eat()
메서드에 액세스할 수 있습니다. Cat 클래스는 Animal 클래스의 메서드를 상속받기 때문입니다. super
키워드는 하위 클래스에서 수퍼 클래스 구성원에 액세스하는 데 사용됩니다. 속성, 생성자 및 메서드에 액세스하는 데 사용할 수 있습니다. @Override
는 하위 클래스가 상위 클래스를 덮어쓰고 있음을 컴파일러에 알리는 데 사용되는 주석입니다. 메서드가 실제로 아무 것도 재정의하지 않은 경우 컴파일러에서 경고를 추출하고 코드 가독성도 향상시키기 때문에 유용합니다. 필수는 아니지만 일반적으로 사용하는 것이 좋습니다. 상속 유형
클래스를 기반으로 Java에는 세 가지 유형의 상속이 있습니다.
단일 수준 상속에서 슈퍼클래스에는 하나의 서브클래스만 있습니다.

다단계 상속에서 슈퍼클래스는 서브클래스를 가질 수 있고 서브클래스는 자체 서브클래스를 가질 수 있습니다. 그러나 각 하위 클래스는 직계 상위 클래스에만 액세스할 수 있습니다.

계층적 상속에서 단일 클래스는 여러 하위 클래스의 상위 클래스 역할을 합니다.

메서드 재정의
메서드 재정의는 하위 클래스에 메서드가 같지만 구현이 부모 클래스와 다른 경우에 수행됩니다. 메서드 재정의 사용 규칙은 다음과 같습니다.
Reference
이 문제에 관하여(상속과 메소드 오버라이딩 - [Java OOP #4]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rachelsarchive/inheritance-method-overriding-java-oop-4-2o9m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)