你在a类重载b类的doit() 函数,
不做任何动作就可以无法调用doit()方法,
但是要控制不被暴露,我是觉得不行的啦
不做任何动作就可以无法调用doit()方法,
但是要控制不被暴露,我是觉得不行的啦
解决方案 »
- 关于swing中的用DefaultTreeModel删除结点removeNodeFromParent
- eclipse插件开发中如何获取当前的工程名称
- 在java中怎么写包含有<PassportName>..</PassportName>的正则表达式?
- 求助高手,关于settooltiptext问题
- 请问jtree中该如何去刷新?
- 我想问下大家一个关于cook的问题??
- 有关equals,compareTo的疑惑 --谢谢
- 数据库连接的错误?
- 新手送分。入门问题
- 整型数组A,长度为200;再给定一个数组B,B内存放A中部分元素的下标,B内的元素无序;问题:对A中下标在B内的元素进行甲操作,其他元素进行乙操作
- jbuilder7中怎么做成exe文件?找不到菜单项。
- 一个简单的问题请教各位大侠(初学者)
出题的人不知在说些什么?
答题的人全在瞎猜,答案是千奇百怪
如此,csdn没什么意义了
to javapro:我试过直接重载为private,但编译器会报错,说不能重载。
to haode:这样也不行,因为我希望a里边可以调用或者说使用b的doit方法的功能,而且a不再为其使用者和继承者暴露doit方法。不知道这样说能不能理解。
to udoo:其实,我这个问题的题目就很容易理解,就是将一个public方法在a类中终结,使之对a的继承者或者使用者都看不见这个方法,那也就是说要将这个public方法变为private方法。呵呵,仔细理解一下嘛,理解万岁,csdn万岁!
public final void doit()
B将无法继承A的doit方法
楼主的想法实在是太强了, sorry
Overriding methods can have the same or more access privileges of the overriden methods.Superclass | Subclass
1)private | private->protected->public
2)Friendly | friendly->protected->public but NOT private
(no modifier)
2)protected | protected->public but NOT private
3)public | public but NOT private or protectedThe reason.
Suppose class A extends class B;then A is also a kind of B.class A extends B{
private f();
}
class B {
public f();
}then if in a methodB b=getInstanceOfB90;
//It can return subclass of B,A,because A is a kind of B
b.f();
//This is definitely right,but if the method f() of A have less
//access privileges than the overriden f() of B,the compiler will
//complain.
If you are not know it completely,you can send me email
[email protected]
可以在B中包含并维护一个A的实例.然后,在B中对A的方法派发.如:
class B{
...
A a = new A();
...
public aMethod(){
a.aMethod();
}
...
}
Even though you can declare doit as private and disallow
new B().doit();
what do you do for
A a = new B();
a.doit();?you should NOT use inheritance. Polarislee(北极星) is right.