覆盖时有一个要求:子类方法的访问权限比父类方法的访问权限更高。。
如果父类是public void,子类是public static void 访问权限谁高呢?
反过来,子类是public void,父类是public static void又怎么样了呢?
如果父类是public void,子类是public static void 访问权限谁高呢?
反过来,子类是public void,父类是public static void又怎么样了呢?
一个是instance method,一个是class method
请问楼主有什么好比的?
class A{
public stataic void main(String[] args) {
//new B().f();这个是不行的,而且static方法也不建议用对象去调用
} public static void f() {
}
}class B extends B {
}
private
default
protected
publicfinal static 等只是声明该方法或变量的状态.楼主别搞混了
是有这么一道题目,大家给解答下://阅读下面两个类,在类A中哪个方法被重载,那个被覆盖?
public class A
{
public void methodOne(int i)
{
}
public void methodTwo(int i)
{
}
public static void methodThree(int i)
{
}
public static void methodFour(int i)
{
}
}
public class B extends A
{
public static void methodOne(int i)
{
}
public void methodTwo(int i)
{
}
public void methodThree(int i)
{
}
public static void methodFour(int i)
{
}
}
我就是不知道到底在这里扮演了什么角色
overload:覆盖,应用范围为在有继承关系的子父类之间,子类中的方法声明与父类中的方法声明完全一样//阅读下面两个类,在类A中哪个方法被重载,那个被覆盖?
public class A
{
public void methodOne(int i)
{
}
public void methodTwo(int i)
{
}
public static void methodThree(int i)
{
}
public static void methodFour(int i)
{
}
}
public class B extends A
{
public static void methodOne(int i)//编译错误,提示:This static method cannot hide the instance method from A
{
}
public void methodTwo(int i)//override
{
}
public void methodThree(int i)//编译错误,提示:This instance method cannot override the static method from A
{
}
public static void methodFour(int i)//关于静态方法,按Sun官方的说法,没有覆盖这一说,只是父类中的方法被子类的隐藏了
{
}
}
标识该方法或变量为类变量,与实际变量区分开
建议楼主复习下Java的基础知识