[JAVA][クイックキャンパス]抽象クラス

8474 ワード

抽象クラス

  • クラス
  • 抽象メソッドを含む
  • 抽象メソッド:メソッド本体(=実施部分)のないメソッド
  • 抽象予約語
  • を使用
  • 抽象クラスは新しい(インスタンス化)cf具体クラス
  • ではない.
  • オブジェクトのクラス(=未完了のクラス)を作成できません->抽象メソッドを呼び出すことができないため、インスタンス
  • の作成をブロックします.
  • 抽象クラスは、抽象メソッド、従来のメソッド、ジェネレータ、インスタンス変数などを有することができる.
  • インスタンスは作成できませんが、
  • を継承して使用できます.

  • 抽象クラスの実装



    Computer.java
    package abstractex;
    
    public abstract class Computer {
    	//아래 두 메서드는 하위위클래스가 알아서 구현해야되는 메서드
    	public abstract void display();
    	public abstract void typing();
    	
    	//아래 두메서드는 공통으로 쓰이는 메서드
    	public void turnOn() {
    		System.out.println("전원을 킵니다.");
    	}
    	
    	public void turnOff() {
    		
    	}
    }
    DeskTop.java
    package abstractex;
    
    //하나의 추상메서드를 포함하면 abstract를 명시해줘야한다.(추상클래스로 선언)
    public class DeskTop extends Computer{
    
    	public void display() {
    		System.out.println("DeskTop Display");
    	}
    
    	@Override
    	public void typing() {
    		System.out.println("DeskTop Typing");
    	}
    //turnOff클래스를 오버라이딩하여 재정의할 수 있음
    	@Override
    	public void turnOff() {
    		System.out.println("desktop turnoff");
    	}
    	
    	
    }
    NoteBook.java
    package abstractex;
    
    public class NoteBook extends Computer{
    
    	@Override
    	public void display() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void typing() {
    		// TODO Auto-generated method stub
    		
    	}
    
    }
    MyNoteBook.java
    package abstractex;
    
    public class MyNoteBook extends NoteBook{
    	@Override
    	public void display() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void typing() {
    		// TODO Auto-generated method stub
    		
    	}
    
    }
    ComputerTest.java
    package abstractex;
    
    public class ComputerTest {
    
    	public static void main(String[] args) {
    		
    		//상위클래스Computer의 변수computer로 하위클래스에 인스턴스가 생성되서 대입될 수 있다.
    		//상속에서도 그래왔듯이 상속에서도 똑같이 적용됨
    		Computer computer=new DeskTop();
    		computer.display();
    	}
    }
    メソッドとクラスでabstractキーワードを使用する
    抽象メソッドを含むクラスは抽象クラスとして宣言されます
    すべてのメソッドが実装されても、クラスでabstractキーワードを使用して抽象クラスを作成できます.

    抽象クラスの使用


    抽象クラスは主に継承の親として使用されます
    抽象メソッド:サブクラスが実装しなければならないメソッド
    実装方法:サブクラスでよく使用される機能の方法で、サブクラスに基づいて再定義できます.