谁能帮我看看这个简单的java程序?

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:37:45
Inher9.java:

class Super
{
int a=10;
void hi()
{
System.out.println("hello");
}
}
class Sub extends Super
{
int b=20;
void hi()
{
System.out.println("hi");
}
void bye()
{
System.out.print("bye");
}
}
public class Inher9 {
public static void main(String[] args)
{
Super ob=new Sub();
ob.a=88;
ob.hi();
//ob.bye();
//ob.b=99;
}
}
结果输出 hi

1. 为何ob.bye();ob.b=99; 不能引用,但是ob.hi()却执行的是Sub的hi()?

2.为何class Super class Sub前加了public就错了?不加public代表什么意思?如果是默认(default)的话就是friendly,但我在前面添上friendly也会报错。这里的class Super和class Sub对于Inher9.java以及整个包的关系是什么?

一个java文件中只能有一个public类,如果出现了多个public 的类,肯定有类是内部类,ob是Super 的对象所以不能调用Sub 的成员变量,调用的方法其实是Super的方法,只是Super的方法被类引用new Sub()这个类所覆盖

2.一个java文件中只能有一个public类,public class Inher9 已经用了public了,所以其他类就不能使用public了。class Super class Sub向同一个包中的类公开

不是public成员无法访问

一个文件只能有一个public类
java里没有 friendly关键字,java如果是默认(default)的话就是protected