第一个改为:
class A{
void f(){
System.out.println("A");
}
}
class B extends A{
void f(){
super.f();
System.out.println("B");
}
}
public class F
{
public static void main(String [] args){
B b = new B();
b.f();
}
}
第二个写的太烂!
b啥用也没有。
class F中的main方法有static修饰,也就是说是一种类方法或者叫静态方法,他们是类的一部分,而不属于具体的哪一个对象,所以不可以调用实例方法,而类B中的方法f是一个实例方法,所以会出现调用失败。
你定义的子类实际上相当于类F的成员,如果你把类B定义在F之外的话,多半不会出现这个问题。
第二题中,b使用来判断是否进行过交换的,如果在一次循环中不再有过交换,那么说明排序已经完成了,也就可以退出循环进行显示了。
头一个用了两个内置类,而在MAIN中是无法访问的,所以有错.
第二个,b就是控制循环的.
建议你再研究研究JAVA,这种问题估计一时也说不明白.
第一个没看明白,我不太懂java语法,如果按c#的来说,应该在B类的 int f()前加new关键字,不知java怎么安排。
第二个应该是一个冒泡排序,如果是真表示小循环上当前数是否需要排序。
就是你的大括号对应的太不整齐了.好好整理一下再研究吧.
把每个结尾的括号加上注释,否则连自己都没法看了.
哪有这么起名字的,A,B,C没有意义.
1、b.f();错了,
2、b = true;没有他IF语句不执行