谁能帮我看看这个简单的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以及整个包的关系是什么?
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