Java abstract修飾子のサンプル

Javaのabstract修飾子のサンプルです。

目次

abstract修飾子

abstractがつく場所 説明
メソッドの前 抽象メソッドになります。
クラスの前にもabstractをつけることが必須になります。
クラスの前 インスタンス化することが不可になります。
抽象メソッドは、無くてもエラーにはなりません。
  • 抽象メソッドを含んだクラスは抽象クラスと呼ばれます。
  • 抽象クラスを継承する場合はextendsを使用します。
  • 抽象クラスを継承したクラスでは、抽象メソッドをオーバーライドする必要があります。
  • 一度に継承できる抽象クラスは1つのみです。
  • インスタンスの生成で抽象クラスの型を指定することも可能です。その場合、指定した抽象クラスのメソッドのみ使用できます。

abstractのサンプル

サンプルのコードです。
5行目はクラスの前にabstractがついています。抽象クラスです。
6行目はメソッドの前にabstractがついています。抽象メソッドです。
8行目は抽象クラスをextendsで継承しています。
10行目は6行目の抽象メソッドをオーバーライドしています。

package test1;
/**
 * abstractのサンプル
 */
abstract class AbstractTest {
	abstract void print1();
}
class TestA extends AbstractTest {
	@Override
	public void print1() {
		System.out.println("1");
	}
}
public class Test1 {
	public static void main(String[] args) {
		TestA ta = new TestA();
		ta.print1(); // 1
	}
}

インスタンスの生成でabstractのクラスの型を指定するサンプル

インスタンスの生成で抽象クラスの型を指定するサンプルです。
指定した抽象クラスにあるメソッドのみ使用できます。
19行目は、抽象クラス(AbstractTest)の型を指定しています。21行目の抽象クラスにないprint2メソッドの実行はできません。

package test1;
/**
 * abstractのサンプル
 */
abstract class AbstractTest {
	abstract void print1();
}
class TestA extends AbstractTest {
	@Override
	public void print1() {
		System.out.println("1");
	}
	public void print2() {
		System.out.println("2");
	}
}
public class Test1 {
	public static void main(String[] args) {
		AbstractTest tab = new TestA();
		tab.print1(); // 1
//		tab.print2();
	}
}

関連の記事

Java クラスのサンプル
Java コンストラクタのサンプル
Java クラスの変数のサンプル(メンバー変数/ローカル変数)
Java 変数の型変換とキャストのサンプル
Java インスタンスの型を調べるサンプル(instanceof)
Java クラスのthisのサンプル
Java インターフェースのサンプル
Java シングルトンのサンプル
Java ポリモフィズムのサンプル
Java staticメソッドとstatic変数のサンプル



△上に戻る