晕了,JAVA中的super到底是指什么

2019-03-25 13:50|来源: 网路

JAVA还是初学,查了很多资料,还是不太了解。有说是父类对象的引用,子类实例化时会一起生成一个父类的对象。但是要是父类是抽象类呢,不是不能实例化的吗?可是super.xx()怎么也可以调用抽象父类的普通方法,不是只有实例化的对象才可以调用普通方法的吗?super到底是指什么,然后子类实例化的过程到底怎么样的,希望高手可以帮帮我。

abstract class Base{

public void say(){
System.out.println("父类普通方法");
}	
}

class Sub extends Base{	
public void say(){

System.out.println("子类重写的方法");
super.say();
}	
}

public class HelloWorld {

public static void main(String[] args) {
Base sub = new Sub();
sub.say();
}

}



子类重写的方法
父类普通方法

相关问答

更多
  • 是一种 模型,就是将 程序进行分层分功能封装。 M是model,V是view 视图,c是control,控制。 百度中很多介绍啊
  • 函数和方法就是一回事 你在这里super根本调不到x参数的任何方法,普通方法就是用super. 但是构造方法不一样,构造方法在定义的时候有一个非常死的规定就是方法名字必须和类名字是一样的,一个类里面可以有好几个构造方法,构造方法就两类,一类是无参构造,就是不带参数的构造方法,通俗的说就是初始化函数,就拿你这个例子来说class abc,那么它的无参构造就是public void adc(){},如果说你现在要定义有参构造函数呢,可以这样,public void abc(int x){}当然参数和返回类型都是 ...
  • 假设有2个类,一个类为A,一个为B,B是A的子类 现在 由A生成一个 对象C,对象C的方法中有 x=x 语句,如果不加this ,方法中的X就单纯的自己赋值给自己咯(就象把你身上的钱从左口袋放到右口袋,还是你的钱),如果加了this ,就表示把 X赋值给 对象C 中的X (你的钱就进其他人的口袋了),所以结论,this表示 调用当前该方法的对象 super是指 子类B 的父类A,子类中出现super表示调用 父类中的构造方法 我学Java的时间不长,自己的理解,有错误的话,我也没办法。呵呵
  • 按接口开发是指 其他团队已经将所需要实现的方法接口写好了,你只需要实现他的接口里面所有的抽象方法即可。
  • 解决方法:你应设置 ch 为String。或者赋值的时候='A' 。这样也可以。 错误原因:因为你现在的赋值是字符串,并且你的ch是 char类型的。所以就出错了。 char是字符,用单引号括起,但是只能括起一个字符。 你一次那么多字符应该使用String 类型。
  • 您好,提问者: this代表的是当前对象,可以是当前对象的方法、变量。 super代表的是父类,说白了就是在子类中通过super关键字来调用父类的东西。
  • 在JAVA中一共有八种基本数据类型,他们分别是 byte、short、int、long、float、double、char、boolean 整型 其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到 ...
  • super可以调用父类的方法在子类中使用,也可以把super()放在子类构造函数的第一行 "this"的用法 构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什麽东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器 super"的用法 构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。