Maison  >  Questions et réponses  >  le corps du texte

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指向谁?

PHPzPHPz2712 Il y a quelques jours430

répondre à tous(5)je répondrai

  • 天蓬老师

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

    Le mot clé this en Java ne pointe pas vers l'objet courant ?

    Oui.

    Cependant, vous devez instancier pour obtenir l'objet. Et vous ne pouvez pas instancier une classe abstraite, uniquement ses sous-classes non abstraites. Par exemple, dans votre code :

    NewDemo a =new NewDemo ();

    A ce moment, this pointe vers l'objet a.
    This dans la classe Demo fait référence à la référence de l'objet obtenu en l'instanciant.
    Il est recommandé que le sujet comprenne d'abord les concepts de base de Java.

    répondre
    0
  • PHP中文网

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

    Est-ce que cela ne pointe pas vers l'objet lorsqu'il est instancié ? De plus, NewDemo n'est-il pas appelé dans votre Test ? La démo est une classe abstraite qui ne fournit pas d'appels, n'est-ce pas ?

    répondre
    0
  • 怪我咯

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

    this fait référence à l'objet actuel. Il ne fait aucun doute que le Demo dans la classe this est en fait un objet instance de 继承Demo的普通类, car les classes abstraites ne peuvent pas être instanciées, et ce 继承Demo的普通类 doit être implémenté la méthode print, vous pouvez donc appeler la méthode print. Le sujet peut en apprendre davantage sur les notions de polymorphisme et d'héritage, et les savourer avec attention.

    répondre
    0
  • PHP中文网

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

    Vous pouvez retirer le bytecode pour voir lesquels sont dynamiques et lesquels sont statiques.

    répondre
    0
  • 黄舟

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

    Cela représente l'objet actuel. Si vous n'aimez pas ça, vous pouvez le supprimer

    répondre
    0
  • Annulerrépondre