我的问题是:好像有冲突,new的是 类B 呢还是new的是 构造方法B()。

拜托了 这个问题我想了好久 也google没找着

new的时候就是调用类的构造函数

输出

[code="java"]
A()
B()
b:f()
[/code]

B b = new B();//这条语句执行时先调用A类构造函数
因为B类集成了A所以重写了f();方法
所以会调用b实例的f()方法

我敲了代码看了一下
这里创建两个类
A.java
[code="java"]public class A {
protected void print(String s) {
System.out.println(s);
}
A() {
print("A()");
}

public void f() {
    print("A:f()");
}

}[/code]

B.java
[code="java"]class B extends A {
B() {
print("B()");
}
public void f() {
print("b:f()");
}
public static void main(String[] args) {
B b = new B();
b.f();
}
}

[/code]
运行B类的main方法输出
[code="java"]A()
B()
b:f()[/code]