Java抽象クラス


目次
  • 抽象クラス
  • 抽象クラス特徴
  • 抽象クラスの使用方法
  • 抽象クラスは


    抽象クラスとは、メソッドを実装せずに定義された形状のみの抽象クラスを指す.
    メソッドに{}(カッコ)がない場合、メソッドで定義および実装される区分メソッドは実装である.
    抽象クラスは不完全クラスとも呼ばれます.
    抽象クラスを使用する理由は,抽象メソッドである親が継承する子クラスに無条件に抽象メソッドを実装するためである.

    抽象クラスの特徴

  • 抽象メソッドがあります.
  • 不完全クラスなので、それ自体はオブジェクト化できません.
  • 抽象クラスを継承する子クラスは、親クラスにある必要があります.
    すべての抽象的な方法を実現しなければならない.
  • 抽象クラスの使用方法


    抽象クラスの使用
    abstract class 클래스 명{}
    抽象メソッドの使用
    abstract 데이터 타입 메서드명();
    例)抽象クラスの継承
    // 추상 메서드 선언
    abstract class AbstractParent{
    	//변수 선언
    	int value = 10;
    	
    	// 일반 메서드 구현
    	void parentMethod() {
    		System.out.println("일반 메서드");
    	}
    	
    	// 추상 메서드 정의
    	abstract void absMethod();
    	
    }
    
    
    class AbstractChild extends AbstractParent{
    	
    	@Override
    	void absMethod() {
    		System.out.println("추상 메서드 구현");
    	}
    }
    
    public class Abstract {
    
    	public static void main(String[] args) {
    
    		AbstractChild ac = new AbstractChild();
    		
    		System.out.println("추상 클래스인 부모 클래스 변수 -> " + ac.value);
    		ac.parentMethod();  // 부모 클래스에서 일반 메서드 호출
    		ac.absMethod();  // 자식 클래스에서 부모 클래스 추상 클래스를 구현한 메서드를 호출
    				
    	}
    
    }
    

    抽象クラスの継承


    抽象クラス間でも継承できます.別の抽象クラスに継承されたサブクラスは、継承された抽象クラスと、以前に継承されたすべての抽象クラスを実現する必要があります.
    例)抽象クラスの継承
    abstract class Abstract1 {
    
    	abstract void abstract1Method();// 첫 번째 추상 메서드 정의
    
    }
    
    abstract class Abstract2 extends Abstract1 {
    
    	abstract void abstract2Method(); // 두 번째 메서드 정의
    
    }
    
    class GeneralClass extends Abstract2 {
    
    	void abstract1Method() {
    		System.out.println("abstract1 Method"); // 첫 번째 추상 메서드 구현
    	}
    
    	void abstract2Method() {
    		System.out.println("abstract2 Method"); // 두 번째 추상 메서드 구현
    	}
    
    }
    
    public class Abstract02 {
    
    	public static void main(String[] args) {
    
    		GeneralClass gc = new GeneralClass();
    
    		gc.abstract1Method(); // 첫 번째 메서드 호출
    		gc.abstract2Method(); // 두 번째 메서드 호출
    	}
    
    }
    
    
    出力結果:
    abstract1 Method
    abstract2 Method
    以上が抽象クラスです.エラーや不足点があれば、フィードバックに感謝します.!!