JAVA继承中的复写问题?
想问一下,如过在父类种方法的访问权限是private,那么此方法能否被复写呢?各位前辈可否举个小例子给讲解一下?...
想问一下,如过在父类种方法的访问权限是private,那么此方法能否被复写呢?各位前辈可否举个小例子给讲解一下?
展开
展开全部
java的类有四种权限修饰关键字:public、protected、default和private
public:public类是公共类,在任何地方都能被访问到(同一java项目),子类可以继承父类public方法并复写;
protected:可以被同一个包下或其子类访问,所以被protected修饰的方法也是可以被子类继承并复写的;
default:默认为包访问权限,就是只有在同一个包内才能被访问到,子类如想复写默认权限的方法就必须与父类在同一个包里;
private:私有方法只有类内部的访问权限,意思是只有在父类内部才能够被访问到,而且private的方法默认是final的,既不能够被继承,也不能够被复写!
例子的话,你随便定义一个父类:
package com.father
public class Father {
public(protected)()(private) void test() {
System.out.println("father invokes");
}
}
再定义一个子类
package com.child(package com.father)
public class Child {
@Override
public(protected)()(private) void test() {
System.out.println("child invokes");
}
}
编译一下验证上述几条
PS:编译出错说明不能被继承
public:public类是公共类,在任何地方都能被访问到(同一java项目),子类可以继承父类public方法并复写;
protected:可以被同一个包下或其子类访问,所以被protected修饰的方法也是可以被子类继承并复写的;
default:默认为包访问权限,就是只有在同一个包内才能被访问到,子类如想复写默认权限的方法就必须与父类在同一个包里;
private:私有方法只有类内部的访问权限,意思是只有在父类内部才能够被访问到,而且private的方法默认是final的,既不能够被继承,也不能够被复写!
例子的话,你随便定义一个父类:
package com.father
public class Father {
public(protected)()(private) void test() {
System.out.println("father invokes");
}
}
再定义一个子类
package com.child(package com.father)
public class Child {
@Override
public(protected)()(private) void test() {
System.out.println("child invokes");
}
}
编译一下验证上述几条
PS:编译出错说明不能被继承
展开全部
子类不能重写父类被声明为private的方法,因为private是私有的意思, 只对它声明时所在的类是可见的,对其子类是隐藏的.
因为不能子类不能重写父类被声明为private的方法,所以我想不用举例了吧
因为不能子类不能重写父类被声明为private的方法,所以我想不用举例了吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能!
private方法就是final方法!final方法是不能被复写的
private方法就是final方法!final方法是不能被复写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以的!
private方法根本就没有被继承下来。
就是说子类根本就没有这个方法,那如何复写?
private方法根本就没有被继承下来。
就是说子类根本就没有这个方法,那如何复写?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询