- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-08-29T09:30:06+09:00","ldap:pandora"," pandora")
#author("2018-08-29T09:51:51+09:00","ldap:pandora"," pandora")
[[Java]]
* ''抽象クラス'' [#c9bca55b]
- 抽象クラスとは
クラス内に、含まれるメソッドに具体的な内容を記述せず、変数とメソッドの型のみを定義したクラス。
- 抽象クラス(abstract型)とは
クラス内に、抽象メソッドを定義することが出来、抽象クラスを継承したクラスは抽象メソッドを必ずオーバーライドさせることができる。抽象メソッドには具体的な内容を記述せず、型のみを宣言することができる。
#highlighter(java,number){{
// インターフェースクラスの宣言
public interface Sports{
// メソッドの型のみ定義し、中身を一切記載しない。
// メソッドの宣言
public void winMessage();
// メソッドの宣言
public void loseMessage();
// メソッドの宣言
public String getRule();
// メソッドの宣言
public void setRule(String rule);
abstract public interface About{
// abstractメソッド(抽象メソッド)は型のみ定義し、中身を一切記載出来ない。
// 継承したクラスは必ず抽象メソッドをオーバーライドする必要がある。
abstrct public void msg();
// abstractメソッド以外も宣言可能
public String getName() {
}
}
}}
- 特徴
-- インターフェースクラスを継承したクラスは、必ずインターフェースクラス内にあるメソッドを全てオーバーライドしなければならない。
→今後インターフェースクラスを継承して作成されたクラスは、インターフェースクラスに定義されているメソッドを全て持つことを「約束」しています。
-- 抽象クラスを継承したクラスは、必ず抽象クラス内にある抽象メソッドを全てオーバーライドしなければならない。
#highlighter(java,number){{
// Sportsインターフェースクラスを継承
public class Soccer implements Sports {
// Soccerクラスは、Sportsクラスに定義されているメソッドを全て定義(オーバーライド)しなければならない。
@Override
public void winMessage() {
}
public class Strict extends About {
// Strictクラスは、Aboutクラスに定義されている抽象メソッドを全て定義(オーバーライド)しなければならない。
@Override
public void loseMessage() {
public void msg() {
}
@Override
public String getRule() {
}
@Override
public void setRule(String rule) {
}
}
}}
-- インターフェースクラスの多重継承を許可する。
#highlighter(java,number){{
// インターフェースクラスの宣言
public interface Human{
// メソッドの型のみ定義し、中身を一切記載しない。
// メソッドの宣言
public void speek();
// メソッドの宣言
public void listen();
}
// Sports,Human 複数のインターフェース継承
public class Soccer implements Sports,Human {
@Override
public void winMessage() {
}
@Override
public void loseMessage() {
}
@Override
public String getRule() {
}
@Override
public void setRule(String rule) {
}
@Override
public void speek() {
}
@Override
public void listen() {
}
}
}}