특정 사물로부터 공통적인 측면, 본질적인 속성, 관계를 추출하고 요약하는 동시에, 개별적이고 필수적이지 않은 측면, 속성, 관계를 폐기하는 것을 추상화라고 합니다.
추상 클래스:
새 메서드를 사용하여 인스턴스화할 수 없는 클래스, 즉 특정 인스턴스 개체가 없는 클래스는 추상 클래스를 통해서만 새 하위 클래스를 파생할 수 있으며 해당 하위 클래스를 사용하여 개체를 생성할 수 있습니다.
추상 메소드:
추상 메소드는 추상으로 수정된 메소드입니다. 이 메소드는 반환된 데이터 유형, 메소드 이름 및 필수 매개변수만 선언합니다. 즉, 추상 메소드는 메소드 본체만 있으면 됩니다. 선언된 메서드가 추상 메서드인 경우 이는 이 메서드가 하위 클래스의 메서드로 재정의되어야 함을 의미합니다. 그렇지 않으면 해당 하위 클래스의 메서드는 여전히 추상입니다.
추상 클래스의 특징:
A: 추상 클래스와 추상 메서드는 추상 키워드로 수정해야 합니다.
B: 추상 클래스에는 추상 메서드가 없을 수 있지만 추상 메서드가 있는 클래스는 추상 클래스로 정의되어야 합니다.
C: 추상 클래스는 직접 인스턴스화할 수 없습니다. 하위 클래스(메서드)를 통해 다시 작성됩니다.
추상 클래스에는 상위 클래스 데이터에 대한 하위 클래스 액세스를 초기화하는 생성자가 있습니다.
D: 추상 클래스의 하위 클래스입니다.
public class AbstractDemo { public static void main(String[] args) { //Tree t = new Tree();//抽象的子类不能实例化;Error! Grass g = new Grass();//非抽象类的子类实例化 g.grow(); System.out.println("-------------"); Plant p = new Grass();//多态的方式 p.grow(); } } abstract class Plant{ public abstract void grow(); } /* * 1.子类是抽象类; */ abstract class Tree extends Plant{ Tree(){ System.out.println("tree"); } } /* * 2.子类不是抽象类,则必须重写所有抽象方法; */ class Grass extends Plant{ Grass(){ System.out.println("grass"); } public void grow(){ System.out.println("grass growing"); } }
A: 멤버 변수
는 변수 또는 상수일 수 있습니다. B: 생성자 메서드
는 클래스 데이터의 상위 초기화에 액세스하기 위해 하위 클래스에서 사용됩니다.
C: 멤버 메서드
는 추상적이거나 추상적이지 않을 수 있습니다.
추상 클래스 멤버 메서드 특성:A: 추상 메서드
서브클래스가 수행해야 할 필수 요구 사항 ;B: 비추상 메서드
코드 재사용성을 향상하기 위해 하위 클래스에서 항목 상속;
다음은 추상 클래스 멤버의 예입니다.public class AbstractMember { public static void main(String[] args){ Phone p = new Vivo(); //这里是多态;(用来实例化抽象类) p.height = 1460; //1600 -> 1460 System.out.println(p.height); System.out.println(p.width); System.out.println("-----------"); p.call(); //vivo call p.method(); //vivo method } } abstract class Phone{ public int height = 1600; public final int width = 960; public Phone(){} public Phone(String name,int count){} /*成员方法*/ public abstract void call();//抽象成员方法; public void method(){ //非抽象成员方法; System.out.println("phone method"); } } //非抽象子类,重写抽象父类的抽象方法: class Vivo extends Phone{ public void call(){ System.out.println("vivo call"); } public void method(){ System.out.println("vivo method"); } }
Java 기본 튜토리얼
위 내용은 Java의 추상화를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!