ホームページ  >  に質問  >  本文

java-ee - Java this关键字疑问

public abstract class Demo{
    public Demo(){
        this.print();
    }

    public abstract void print();
}

public class NewDemo extends Demo{
    public NewDemo (){
        this.print();
    }

    @Override
    public void print() {
        System.out.println("NewDemo");
    }
}

public class  Test{
     public static void main(String args[]){
        NewDemo  a =new NewDemo ();
     }
}

Java中this关键字不是指向当前对象。为啥在Demo构造器中能调用子类的print()方法?
抽象类的中的this指向谁?

PHPzPHPz2763日前460

全員に返信(5)返信します

  • 天蓬老师

    天蓬老师2017-04-18 10:34:07

    Java では、this キーワードは現在のオブジェクトを指していませんか?

    はい。

    ただし、オブジェクトを取得するにはインスタンス化する必要があります。また、抽象クラスをインスタンス化することはできず、その非抽象サブクラスのみをインスタンス化します。たとえば、コード内では次のようになります:

    NewDemo a =new NewDemo ();

    このとき、thisはオブジェクトaを指しています。
    Demoクラスのthisは、インスタンス化して取得したオブジェクトの参照を参照します。
    まず、被験者が Java の基本概念を理解することをお勧めします。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:34:07

    これはインスタンス生成時にオブジェクトを指しているのではありませんか?また、テストでは NewDemo が呼び出されませんか?デモは呼び出しを提供しない抽象クラスですよね?

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:34:07

    this就是指当前对象,这个毋庸置疑,Demo类中的this其实是继承Demo的普通类的实例对象,因为抽象类是不能实例化的,而这个继承Demo的普通类必须要实现print方法,所以完全可以调用print方法。被験者はポリモーフィズムと継承の概念について詳しく学び、じっくり味わうことができます。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:34:07

    バイトコードを取り出して、どれが動的でどれが静的かを確認できます。

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:34:07

    これは現在のオブジェクトを表します。気に入らない場合は削除してください

    返事
    0
  • キャンセル返事