请问super,this关键字是不是只能在类的实例方法中使用?
还想请教一下下面的题目,谢谢16.关于super的说法正确的是:A、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在main(...
还想请教一下下面的题目,谢谢
16.关于super的说法正确的是:
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中 展开
16.关于super的说法正确的是:
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中 展开
2个回答
展开全部
比如一个 Class A 是Class B的父类。
B中的this, 就是B的一个实例化对象。
B b = new B(). 这个b和this 是同级别的。 this 只能在B里面用。
要有b, 就必须现有一个A的实例(没有父亲,哪有儿子?)。
那么,super 就是this的爹。
A a = new A(). super 和a是同级别的,只不过super和this 只能在B class中使用。、
想a , b , super, this这种对象,里面实际保存的都是一些内存中的地址(可以理解为你家的门牌号,只不过这些地址放在派出所,别人想找你,就去派出所找这些地址)
假如
public class B extends A {
int meony = 0;
public B(){
meony = 10000;
}
}
那么b,和 this 就是都有 1000块。 和家不一样的是, 你家只有一个,但B可以有很多个,
所以b 和 this 是不同的。
B中的this, 就是B的一个实例化对象。
B b = new B(). 这个b和this 是同级别的。 this 只能在B里面用。
要有b, 就必须现有一个A的实例(没有父亲,哪有儿子?)。
那么,super 就是this的爹。
A a = new A(). super 和a是同级别的,只不过super和this 只能在B class中使用。、
想a , b , super, this这种对象,里面实际保存的都是一些内存中的地址(可以理解为你家的门牌号,只不过这些地址放在派出所,别人想找你,就去派出所找这些地址)
假如
public class B extends A {
int meony = 0;
public B(){
meony = 10000;
}
}
那么b,和 this 就是都有 1000块。 和家不一样的是, 你家只有一个,但B可以有很多个,
所以b 和 this 是不同的。
追问
谢谢!请问如果子类覆盖了父类的a方法,直接调用a方法是不是就是子类的方法?this.可以省略吗?
追答
覆盖的了的话,如果你子类里调用a, this可以省略,但实际上就是this.a(), 就是子类的实例调用的, 调用的就是子类的a方法。
父类的实例调用a, 调用的就是父类的a方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询