为什么子类构造函数必须显式调用超类构造函数?这是什么原因?
在这段代码中,我理解它适用于A类中的super(t)或B类中的no args构造函数.下面的代码使用了B类中的no args构造函数.我理解如果你将no args构造函数取出来B类的代码不起作用.我是编程的新手,我想要了解的是B类中没有args构造函数的特殊之处,为什么它必须存在才能使代码工作?特殊条件或规则是什么?
public class Test {
public static void main(String[] args) {
B b = new B(5);
}
}
class A extends B {
public A(int t) {
System.out.println("A's constructor is invoked");
}
}
class B {
public B() {
}
public B(int k) {
System.out.println("B's constructor is invoked");
}
}
Run Code Online (Sandbox Code Playgroud) 我是Java的初学者,目前我正在阅读一本名为"Java编程简介"的书.在页276上有一个Array上的Selection排序示例.我坐在这里试图解决它几个小时,我只是不理解它.我理解这个代码是按升序排序数组但是如果有人能够更详细地解释代码的不同部分是什么,我将不胜感激完全做.
double[] list = { 1, 9, 4.5, 6.6, 5.7, -4.5 };
SelectionSort.selectionSort(list);
public class SelectionSort {
public static void selectionSort(double[] list) {
for (int i = 0; i < list.length - 1; i++) {
double currentMin = list[i];
int currentMinIndex = i;
for (int j = i + 1; j < list.length; j++) {
if (currentMin > list[j]) {
currentMin = list[j];
currentMinIndex = j;
}
}
if (currentMinIndex != i) {
list[currentMinIndex] = list[i];
list[i] = currentMin;
} …Run Code Online (Sandbox Code Playgroud) java ×3