자바 강좌의 자바 계승 예시 상세 설명

3559 단어 java계승
상속(extends)은 무엇입니까?
계승은: 새로 정의된 클래스는 기존의 클래스에서 속성과 방법을 얻는 현상이다.이 기존의 클래스를 부류라고 하고, 이 부류에서 속성과 방법을 얻는 클래스를 부류라고 한다.
ExtendsDemo1.java

/* */
public class ExtendsDemo1 {
    public static void main(String[] args) {
        Truck t = new Truck();
        t.size = 100;           // 。 , set(), get() .
                                // t size, color 。
                                //
    }  
}

class Car {                     //
    int size;                   //
    String color;               //
}

class Truck extends Car {       //
    String packingBox;          //
}

상속의 이점
1. 코드의 중용성 향상
2. 클래스와 클래스 사이의 관계를 형성하고 다태적인 조건을 만들었다.
계승 (extends) 형식입니다.슈퍼 키워드
1. 슈퍼 키워드와this의 사용법은 같다
2.this는 본류 인용, super는 부류 인용
3. 하위 클래스와 상위 클래스가 같은 이름의 멤버가 나타날 때 슈퍼와this로 구분 가능
SuperDemo.java

class SubClass extends SuperClass {
 // ;
}
상위 클래스에서 상속된 방법을 다시 쓰기(Override)
1. 하위 클래스에서 상위 클래스와 동일한 방법(반환값, 함수 이름, 인삼)이 나타나면 다시 쓰기(Override) 작업이 나타납니다.
OverrideDemo1.java

/* super
 * :
 * super.i = 10, this.i = 20
 */
public class SuperDemo {
    public static void main(String[] args) {
        new SubClass().showMessage();
    }  
}

class SuperClass {
    int i = 10;
}

class SubClass extends SuperClass {
    int i = 20;

    public void showMessage() {
        System.out.printf("super.i = %d, this.i = %d
", super.i, this.i);
    }  
}

2. 상위 메서드에 대해 다시 쓰기(Override) 작업을 할 때 하위 메서드는 상위 메서드와 이름이 같지만 다른 반환 메서드가 나타나지 않도록 합니다.
OverrideDemo2.java

/* (Override)
 * :
 * SuperClass: I am good~
 * SubClass: I am excellent~~~
 */
public class OverrideDemo1 {
    public static void main(String[] args) {
        SubClass sc = new SubClass();
        sc.speak();
    }  
}

class SuperClass {
    public void speak() {
        System.out.println("SuperClass: I am good~");
    }  
}

class SubClass extends SuperClass {
    @Override                   //@Override , , , 。

    public void speak() {
        super.speak();
        System.out.println("SubClass: I am excellent~~~");
    }  
}

3. 하위 클래스가 상위 클래스를 다시 쓰는 방법에 대한 접근 권한이 상위 클래스에서 다시 쓰는 방법보다 크거나 같음
OverrideDemo3.java

/*
 * :
 * OverrideDemo.java:20: error: f() in SubClass cannot override f() in SuperClass
 *  public int f() {
 *                 ^
 *                   return type int is not compatible with void
 *                   OverrideDemo.java:19: error: method does not override or implement a method from a supertype
 *                      @Override
 *                          ^
 *                          2 errors
 */
public class OverrideDemo2 {
    public static void main(String[] args) {

    }  
}

class SuperClass {
    public void f() {

    }  
}

class SubClass extends SuperClass {
    @Override
    public int f() {
        return 1;
    }  
}

액세스 제어 문자
액세스 제어 문자는public,protected,default,private
가방(package)에 대한 지식이 좀 필요하기 때문에 가방을 이야기할 때 다시 이야기하자.

좋은 웹페이지 즐겨찾기