Javaインターフェースと抽象クラス
紙に書いてあるものは結局は眠りが浅いので,このことは必ずお辞儀をします。 --陸遊 用水路のあれはこれを点検しなければならない,源があるために生きてきたのだ。 --朱熹
インタフェース、インタフェースとは、他者からの呼び出しのための方法と関数を指す。
インターフェースの形式:
public interface interfaceName
{
public static final 変数;
void Function Name;
)
インターフェースの特徴:
1)インターフェースに変数と方法が含まれます。
2)変数は、暗黙的にpublic static final変数として指定されており、このような変数しかありません。
3)インターフェースの方法隠蔽的指定はpublic abstract方法であり、public abstract方法のみである。
4)インターフェースの中の方法はすべて具体的な実現があることができなくて、すべて抽象的な方法で、インターフェースは1種のきわめて抽象的なタイプです。
5)、一つの種類は複数のインターフェースを実現できます。抽象クラスを継承するしかないです。
6)インターフェースの方法は、サブクラスで実現されなければならない。
簡単な例:
抽象類の一般的な定義は抽象的な方法を含む類であり、もちろんabstractで類を修飾するだけで、抽象的な方法がないというのも抽象的な類ですが、それはあまり意味がありません。
抽象類の形式:
public abstract abstractName
{
abstract void function();
その他の正常類の配布方法と変数。
)
抽象類の特徴:
1)抽象類は抽象的な方法だけでなく、普通のクラスと同じように変数と普通の方法があります。
2)、抽象的な方法はpublicあるいはprotectedでしかない。抽象的な種類は継承されるため、prvate方法は意味がない。
3)抽象類は、オブジェクトを作成するためには使用できません。継承されます。
4)サブクラスは抽象類を継承しているので、抽象類の抽象的な方法を実現しなければならない。さもなければ、このサブクラスも抽象類である。
抽象クラスの例:
(1)抽象類は構造方法があり、インターフェース内に構造方法がないこと。
(2)抽象類には普通のメンバー変数があります。インターフェースの変数は全部public staticです。 finalで飾られている
(3)抽象類には非抽象的な一般的な方法が含まれています。インターフェースでの方法はデフォルトで抽象的な方法です。
(4)抽象類における抽象的な方法はpublic、protected、デフォルトのタイプであり、インターフェースにおける抽象的な方法はpublicであり、デフォルトはpublic abstractactタイプであることができる。
(5)抽象類には静的な方法があり得るが、インターフェースには静的な方法が含まれていない。
(6)抽象的なクラスとインターフェースには静的なメンバー変数があります。抽象的なクラスの静的なメンバー変数は任意のアクセスタイプであってもいいです。インターフェースの静的なメンバー変数はpublic staticだけです。
(7)一つのクラスは複数のインターフェースを実現することができますが、一つの抽象クラスしか継承できません。
インタフェース、インタフェースとは、他者からの呼び出しのための方法と関数を指す。
インターフェースの形式:
public interface interfaceName
{
public static final 変数;
void Function Name;
)
インターフェースの特徴:
1)インターフェースに変数と方法が含まれます。
2)変数は、暗黙的にpublic static final変数として指定されており、このような変数しかありません。
3)インターフェースの方法隠蔽的指定はpublic abstract方法であり、public abstract方法のみである。
4)インターフェースの中の方法はすべて具体的な実現があることができなくて、すべて抽象的な方法で、インターフェースは1種のきわめて抽象的なタイプです。
5)、一つの種類は複数のインターフェースを実現できます。抽象クラスを継承するしかないです。
6)インターフェースの方法は、サブクラスで実現されなければならない。
簡単な例:
//
interface Say {
public void sayMessage();
}
//
class SayHello implements Say {
public void sayMessage() {
System.out.println("hello");
}
}
class SayHi implements Say {
public void sayMessage() {
System.out.println("Hi");
}
}
public class TestSay {
public static void main(String[] args) {
// Say ,
Say say = new SayHello();
say.sayMessage();
Say say1 = new SayHi();
say1.sayMessage();
}
}
抽象クラス:抽象類の一般的な定義は抽象的な方法を含む類であり、もちろんabstractで類を修飾するだけで、抽象的な方法がないというのも抽象的な類ですが、それはあまり意味がありません。
抽象類の形式:
public abstract abstractName
{
abstract void function();
その他の正常類の配布方法と変数。
)
抽象類の特徴:
1)抽象類は抽象的な方法だけでなく、普通のクラスと同じように変数と普通の方法があります。
2)、抽象的な方法はpublicあるいはprotectedでしかない。抽象的な種類は継承されるため、prvate方法は意味がない。
3)抽象類は、オブジェクトを作成するためには使用できません。継承されます。
4)サブクラスは抽象類を継承しているので、抽象類の抽象的な方法を実現しなければならない。さもなければ、このサブクラスも抽象類である。
抽象クラスの例:
public class Child extends Children{
public Child(String name) {
super(name);
}
public void printName() {
System.out.println(super.getName());
}
public static void main(String[] args) {
Child boy = new Child("Charley");
System.out.println(boy.getName());
Child girl = new Child("Queenie");
girl.printName();
}
}
abstract class Children {
private String name;
public Children(String name) {
this.name = name;
}
public String getName() {
return name;
}
abstract void printName();
}
抽象類とインターフェースの違い:(1)抽象類は構造方法があり、インターフェース内に構造方法がないこと。
(2)抽象類には普通のメンバー変数があります。インターフェースの変数は全部public staticです。 finalで飾られている
(3)抽象類には非抽象的な一般的な方法が含まれています。インターフェースでの方法はデフォルトで抽象的な方法です。
(4)抽象類における抽象的な方法はpublic、protected、デフォルトのタイプであり、インターフェースにおける抽象的な方法はpublicであり、デフォルトはpublic abstractactタイプであることができる。
(5)抽象類には静的な方法があり得るが、インターフェースには静的な方法が含まれていない。
(6)抽象的なクラスとインターフェースには静的なメンバー変数があります。抽象的なクラスの静的なメンバー変数は任意のアクセスタイプであってもいいです。インターフェースの静的なメンバー変数はpublic staticだけです。
(7)一つのクラスは複数のインターフェースを実現することができますが、一つの抽象クラスしか継承できません。