小编Sul*_*972的帖子

为什么我的程序在变量之前打印方法?

当我运行这个程序时:

class Baap {
    public int h = 4;

    public int getH() {
        System.out.println("Baap " + h);
        return h;
    }
}
public class Beta extends Baap {
    public int h = 44;

    public int getH() {
        System.out.println("Beta " + h);
        return h;
    }

    public static void main(String[] args) {
        Baap b = new Beta();
        System.out.println(b.h + " " + b.getH());
        Beta bb = (Beta) b;
        System.out.println(bb.h + " " + bb.getH());
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

Beta 44
4 44
Beta 44 …
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
86
查看次数

这门课有多少种方法?

我用过:

System.out.println(Person.class.getDeclaredMethods().length);

在这里获取此类的方法数:

    class Person {
private String name;
Person(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void setName(String val) {
name = val;

}
}
Run Code Online (Sandbox Code Playgroud)

我为这个类计算了三个方法,但getDeclaredMethods().length只计算了两个方法.我错过了什么?

java

1
推荐指数
2
解决办法
95
查看次数

为什么当我说新的House("x")时会调用超类构造函数Building()?

我有以下代码,但我不明白为什么当我运行它打印"b"前打印"h hn x".为什么"b"获得,因为在所有我不是父类印刷Building在所有当我执行House().

class Building {
    Building() {
        System.out.print("b ");
    }

    Building(String name) {
        this();
        System.out.println("bn " + name);
    }
}

public class House extends Building {
    House() {
        System.out.println("h ");
    }

    House(String name) {
        this();
        System.out.println("hn " + name);
    }

    public static void main(String[] args) {
        new House("x ");
    }
}
Run Code Online (Sandbox Code Playgroud)

java oop inheritance

1
推荐指数
1
解决办法
87
查看次数

标签 统计

java ×3

inheritance ×1

oop ×1