【java – 构造函数必须在方法返回之前调用super()或this()】教程文章相关的互联网学习教程文章

java – 为什么this()和super()必须是构造函数中的第一个语句?【代码】

Java要求如果在构造函数中调用this()或super(),它必须是第一个语句.为什么? 例如:public class MyClass {public MyClass(int x) {} }public class MySubClass extends MyClass {public MySubClass(int a, int b) {int c = a + b;super(c); // COMPILE ERROR} }Sun编译器说“调用super必须是构造函数中的第一个语句”. Eclipse编译器说“构造函数调用必须是构造函数中的第一个语句”. 但是,您可以通过重新安排代码来解决这个问题...

java中? extends T 和? super T解析

转:https://blog.csdn.net/qq_25337221/article/details/81669630 ? 通配符类型- <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类;<? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Object;上界<? extends T>不能往里存,只能往外取 比如,我们现在定义:List<? extends T>首先你很容易误解它为继承于T的所有类的集合,你可能认为,你定义的这个List可...

Java:在super之前在子类中分配final变量【代码】

我有一个包含最终int,valA的A类. 我有一个子类B,它包含一个大的最终对象objB. valA的值取决于与B的构造函数一起传递的objB. 如何创建B的实例? 我已经包含了我想要做的最少代码.public class Test {public static void main(String[] args){System.out.println(new B(3).valA);}static class A{final int valA;A(int valA) {this.valA = valA;}}static class B extends A{final Object objB;B(int initVal) {this.objB = someMetho...

Java: super关键字 final关键字 内部类的定义与使用【图】

文章目录1.super关键字(表示父类属性、表示父类方法)2.final关键字--终结器3.内部类的定义与使用:在类内部进行其他类结构嵌套操作 1.super关键字(表示父类属性、表示父类方法) a.super用于方法 ①用于构造方法(******)表示调用父类构造方法super(参数列表); 当子类调用父类无参构造时,super( 方法参数);可写可不写,表示调用父类无参构造。 当子类调用父类有参构造时,super(参数列表)必须要写,要告诉编译器当前调用的...

java – 无法将参数传递给super();在类的构造函数中扩展RealmBaseAdapter(Realm)【代码】

我有一个问题,我无法将参数“context,realmResults,automaticUpdate”传递给super();在扩展RealmBaseAdapter的类的构造函数中.请参阅我的代码和截图,以便为您清楚. *我的代码:package com.twitter.i_droidi.notah;import android.content.Context; import android.view.View; import android.view.ViewGroup; import io.realm.RealmBaseAdapter; import io.realm.RealmObject; import io.realm.RealmResults;public class RealmMo...

使用子类中的“super”和超类中的“this”选择Java运行时方法【代码】

我在Java的方法覆盖/重载中发现了这种显然很奇怪的行为,令人难以置信. Main()方法中的调用打印出“B_A”,而我??希望它是“B_B”.package one; public class A {public void method(A a){ System.out.println("A_A"); }public void method(B b) { System.out.println("A_B"); }public void method(){ this.method(this); } }package one; public class B extends A {public void method(A a) { System.out.println("B_A"); }publ...

java – 下限通配符(Comparable <?super K>)【代码】

在集合中,经常使用Comparable接口,例如.在PriorityQueue中:private static <T> void siftUpComparable(int k, T x, Object[] es) {Comparable<? super T> key = (Comparable<? super T>) x;...if (key.compareTo((T) e) >= 0)break;... }比如说,我们创建整数队列并添加一些内容:PriorityQueue<Integer> queue = new PriorityQueue<>(); queue.add(1);如果我得到通配符的概念,使用<?的唯一效果超级T>而不是< T>是编译器扩展compa...

java – Robotium_constructor在NotepadTest方法中不推荐使用super的消息【代码】

我正在尝试为记事本应用程序编写示例测试.在下面的代码中,我收到警告,我无法运行测试.请帮我解决这个问题.警告说“不推荐使用构造函数ActivityInstrumentationTestCase2< NotesList>(String,Class< NotesList>)”并且Eclipse中的执行在testAddNote();处停止.如果您需要任何logcat日志,请恢复.package com.example.android.notepad.test; import com.example.android.notepad.*; import com.jayway.android.robotium.solo.Solo; imp...

java – 不使用super.oncreate()停止循环并扩展MainActivity【代码】

我从MainActivity扩展了一个“Login”类. MainActivity看起来像这样:public class MainActivity extends FragmentActivity { /** Called when the activity is first created. */ private static String TAG = "MainActivity";@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.main);Intent login_activity = new Intent(this, Login.class);startActi...

在java中,super()可用于调用任何父方法或仅调用父构造函数

是否可以使用子类方法中的super()调用任何父类方法,或者仅用于调用父构造函数解决方法:对于调用方法,语法是super.methodName().只需super()将调用构造函数. 它与此关键字非常相似,但对于父级. this()从另一个构造函数中调用此类构造函数. super()从childs构造函数调用父构造函数. this.methodName()调用当前类的方法,super.methodName()调用父类的方法. 编辑:正如@harry在评论中提到的那样,父级的方法应该对孩子可见,实际上能够使...

Java 8地图签名:public可选地图(功能<?super T,?extends U> mapper) - 为什么有两个Us?【代码】

public<U> Optional<U> map(Function<? super T, ? extends U> mapper)为什么有两个我们? 我理解第二个U …可选项有一个参数描述返回的Optional类型. 但是我不知道领导U是什么.我正在努力调用可选的map方法,具体如下:[javac] return LocationAPIResponse.map(response -> Context.LocationContext.builder()... [javac] ^ [javac] no instance(s) of type variable(s) U exist so ...

java – 每当我覆盖一个方法时,是否需要调用“super.XXX”?

比方说,如果我没有在超类Activity的覆盖方法中调用super.onPause,我会在调用onPause()时出错.但是,当我从Service派生的类的方法(onCreate,onStartCommand,…)中没有super.XXX调用时,错误不会显示出来. 那么在什么条件下我应该在覆盖方法中调用super.XXX?解决方法:如果派生Activity类,则需要调用的documentation tells you:Derived classes must call through to the super class’s implementation of this method. If they do n...

java基础面试题之:super与this的区别

主要从本质、构造函数及位置、功能、相互关系四点来阐述 本质上来说: this是指向本对象的指针,super是关键字 构造函数及位置上来说: super()、this()都必须出现在构造函数的第一行,且不能同时出现,因为this()中已经默认调用了父类的super()。 功能及使用情况: this出现在同类中,指代本类本对象; super出现在子类中,指代父类及父类的对象,且他们都指代对象,所以不能与static修饰符一起使用 相互关系: this()中会默认调...

Java static方法里为什么不能使用this关键字,和Super

Static方法是类方法,先于任何的实例(对象)存在。 即Static方法在类加载时就已经存在了(JAVA虚拟机初始化时),但是对象是在创建时才在内存中生成。 而this指代的是当前的对象。 static叫静态方法,也叫类方法。 即在程序启动的时候,就会为static方法分配一块内存空间,没有static的其他方法,非静态方法,必须在类实例化时,才有内存空间,所以在类实例化之前是无法调用的jvm有类加载器,第一次加载类时执行类中的static域,j...

子类的Java解决方法被强制在构造函数中调用super()?

我正在编辑一个使用RandomAccessFile对象的程序,我想提出我自己的RandomAccessFile类,它使用不同于文件对象的数据源(它是一个Amazon webservices S3对象,但这是无关紧要的) 我想基本上创建一个名为RandomAccessS3的类,它将RandomAccessFile作为其超类,所以我可以简单地说 RandomAccessFile raf = new RandomAccessS3(); 因此保持现有代码相同.我将简单地覆盖RandomAccessFile中的每个方法. 问题是在子类RandomAccessS3的构造函数中...

构造函数 - 相关标签