> Java > java지도 시간 > 자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

青灯夜游
풀어 주다: 2018-11-26 18:02:49
원래의
13408명이 탐색했습니다.

이 기사에서는 Java의 상속이 무엇인지 소개합니다. 상속을 구현하는 방법. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

자바에서 상속이란 무엇인가요?

Java의 상속은 객체가 상위 객체의 모든 속성과 동작을 얻는 메커니즘입니다. 객체지향 프로그래밍 시스템(OOP)의 중요한 부분입니다.

Java의 상속 개념은 기존 클래스를 기반으로 새로운 클래스를 만드는 것입니다. 기존 클래스에서 상속하면 상위 클래스의 메서드와 필드를 재사용할 수 있습니다. 또한 현재 클래스에 새 메서드와 필드를 추가할 수 있습니다. [추천 관련 동영상 튜토리얼: Java Tutorial]

상속은 IS-A 관계, 즉 부모-자식 관계를 나타냅니다.

상속에 사용되는 용어

1. 클래스: 클래스는 공통 속성을 가진 개체 그룹입니다. 객체를 생성하기 위한 템플릿 또는 청사진입니다.

2. 서브클래스: 서브클래스는 다른 클래스를 상속하는 클래스입니다. 파생 클래스, 확장 클래스, 하위 클래스라고도 합니다.

3. 슈퍼 클래스/부모 클래스: 슈퍼 클래스는 하위 클래스가 함수를 상속하는 클래스입니다. 기본 클래스 또는 부모 클래스라고도 합니다.

4. 재사용성: 이름에서 알 수 있듯이 재사용성은 새 클래스를 만들 때 기존 클래스의 필드와 메서드를 재사용하는 데 도움이 되는 메커니즘입니다. 이전 단원에서 정의한 것과 동일한 필드 및 메서드를 사용할 수 있습니다.

자바에서 상속을 사용하는 이유는 무엇인가요?

1. 메소드 재작성이 가능합니다(런타임 다형성을 달성할 수 있음).

2. 상속을 통해 코드를 재사용할 수 있어 Java 애플리케이션의 재사용성이 향상됩니다.

Java 상속 구현

Java 상속의 기본 구문

클래스를 상속하려면 확장 키워드를 사용합니다. 여기서 XYZ 클래스는 하위 클래스이고 ABC 클래스는 상위 클래스입니다. XYZ 클래스는 ABC 클래스의 속성과 메서드를 상속합니다.

class Subclass-name extends Superclass-name  
{  
   //方法和字段  
}
로그인 후 복사

extends 키워드는 기존 클래스에서 파생된 새 클래스를 생성한다는 것을 나타냅니다. "확장"의 의미는 기능을 향상시키는 것입니다.

Java 용어에서는 상속된 클래스를 상위 클래스 또는 슈퍼 클래스라고 하며, 새 클래스를 하위 클래스라고 합니다.

상속 예제:

아래 상속 예제에서 Bicycle 클래스는 기본 클래스이고, MountainBike 클래스는 Bicycle 클래스를 확장한 파생 클래스이며, Test 클래스는 프로그램을 실행하는 드라이버 클래스입니다.

//用java程序来说明
// 继承的概念
  
// 基类
class Bicycle  
{ 
    // Bicycle类有两个字段
    public int gear; 
    public int speed; 
          
    // Bicycle类有一个构造函数
    public Bicycle(int gear, int speed) 
    { 
        this.gear = gear; 
        this.speed = speed; 
    } 
          
    // Bicycle类 有三种方法
    public void applyBrake(int decrement) 
    { 
        speed -= decrement; 
    } 
          
    public void speedUp(int increment) 
    { 
        speed += increment; 
    } 
      
    // toString()方法来输出 Bicycle类信息
    public String toString()  
    { 
        return("没有的齿轮个数是 "+gear 
                +"\n"
                + "自行车的速度是"+speed); 
    }  
} 
  
// 派生类
class MountainBike extends Bicycle  
{ 
      
    // MountainBike子类增加一个字段
    public int seatHeight; 
  
    // MountainBike子类  有一种构造函数
    public MountainBike(int gear,int speed, 
                        int startHeight) 
    { 
        // 调用基类(Bicycle类)构造函数
        super(gear, speed); 
        seatHeight = startHeight; 
    }  
          
    // MountainBike子类增加一个方法
    public void setHeight(int newValue) 
    { 
        seatHeight = newValue; 
    }  
      
    // 重写toString()方法
    // 输出跟多Bicycle类信息 
    @Override
    public String toString() 
    { 
        return (super.toString()+ 
                "\n 座位高度为 "+seatHeight); 
    } 
      
} 
  
// 驱动程序类
public class Test  
{ 
    public static void main(String args[])  
    { 
          
        MountainBike mb = new MountainBike(3, 100, 25); 
        System.out.println(mb.toString()); 
              
    } 
}
로그인 후 복사

출력:

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

Java의 상속 유형

클래스를 기반으로 Java에는 단일, 다중 레벨 및 계층의 세 가지 상속 유형이 있을 수 있습니다.

1. 단일 상속: 단일 상속에서는 하위 클래스가 상위 클래스의 특성을 상속합니다. 아래 다이어그램에서 클래스 A는 클래스 B가 파생되는 기본 클래스 역할을 합니다.

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

2. 다단계 상속: 다단계 상속에서는 파생 클래스가 기본 클래스를 상속하고 파생 클래스도 다른 클래스의 기본 클래스 역할을 합니다. 아래 이미지에서 클래스 A는 파생 클래스 B의 기본 클래스로 사용되며, 이는 파생 클래스 C의 기본 클래스로 사용됩니다. Java에서는 클래스가 조부모의 멤버에 직접 액세스할 수 없습니다.

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

3. 계층적 상속: 계층적 상속에서 클래스는 여러 하위 클래스에 대한 슈퍼클래스(기본 클래스) 역할을 합니다. 아래 이미지에서 클래스 A는 클래스 B, C 및 D가 파생되는 기본 클래스 역할을 합니다.

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

4. 다중 상속(인터페이스를 통해) : 다중 상속에서 클래스는 여러 슈퍼클래스를 가질 수 있으며 모든 상위 클래스의 기능을 상속받을 수 있습니다. Java는 다중 상속 및 클래스를 지원하지 않습니다. 자바에서는 인터페이스를 통해서만 다중 상속이 가능합니다. 아래 이미지에서 클래스 C는 인터페이스 A와 B에서 나옵니다.

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

5. 혼합 상속(인터페이스를 통해) : 위의 상속 유형 중 둘 이상이 혼합된 것입니다. Java는 클래스를 사용한 다중 상속을 지원하지 않으므로 클래스는 혼합 상속을 구현할 수 없습니다. Java에서는 인터페이스를 통해서만 혼합 상속을 달성할 수 있습니다.

자바에서 상속이란 무엇입니까? 상속을 구현하는 방법

요약: 위 내용은 이 글의 전체 내용으로, 모든 분들의 공부에 도움이 되길 바랍니다.

위 내용은 자바에서 상속이란 무엇입니까? 상속을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿