抽象クラス
1.抽象クラスとは何ですか?
- クラスとクラスには共通の機能があります。これらの共通の機能を抽出すると、抽象クラスが形成されます。
- クラス自体は存在しないため、抽象クラスはオブジェクトを作成できません(インスタンス化できません)
2.それはどのタイプの抽象クラスですか?
- 抽象クラスは参照型です
3.抽象クラスを定義する方法は?
- [修飾子リスト]抽象クラスクラス名{}
4.抽象クラスをインスタンス化したり、オブジェクトを作成したりすることはできないため、抽象クラスはサブクラスによって継承されるために使用されます。
5. finalとabstractを一緒に使用することはできません
。6.抽象クラスのサブクラスは抽象クラスにすることができます
7. 抽象クラスはインスタンス化できませんが、コンストラクターを持っていますが、サブクラス(スーパー())向けです
8.抽象クラス概念に関連:抽象メソッド
- 抽象メソッドは、実装されていないメソッド、およびメソッド本体を持たないメソッドを表します。など:
public abstract void doSome();
- 特徴:セミコロンで終わるメソッド本体はありません。上記の修飾子リストに抽象キーワードがあります
9.抽象クラスには必ずしも抽象メソッドがあるとは限りませんが、抽象メソッドは抽象クラスに出現する必要があります。
10.抽象クラスは半抽象であり、抽象クラスでは、抽象メソッドまたは通常のメソッドを記述できます。
10.重要な結論:***** 5つ星
- 非抽象クラスは抽象クラスを継承し、抽象クラスの抽象メソッドを実装する必要があります
- ここでの上書きまたは書き換えは、実装とも呼ばれます。(抽象化の実現)
- 理由:メソッドを上書きしない場合、それは通常のクラスに現れる抽象メソッドと同等ですが、これは絶対に許可されていません。
抽象クラスにはコンストラクタがあります
public class AbstractTest{
public static void main(String[] args){
Cat c = new Cat();
}
}
abstract class Aniaml{
//有参数构造方法
public Aniaml(int a){
}
}
class Cat extends Aniaml{
}
抽象メソッドは抽象クラスにのみ出現できます
public class AbstractTest{
public static void main(String[] args){
}
}
abstract class Aniaml{
//抽象方法
public abstract void move();
}
class Cat extends Aniaml{
//如果不进行方法覆盖
//那么就相当于抽象方法出现在了普通类中,是绝对不允许的
//public void move(){}
}