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