如下代码,由于Point类的构造方法为私有,所以ColoredPoint无法编译通过。class Point {
private Point() { }
}
class ColoredPoint extends Point {
int color;
}但是,一但将这两个类放到一个外部类中却编译通过了。代码为:class test{
class Point {
private Point() { }
}
class ColoredPoint extends Point {
int color;
}
}到底怎么回事呢?
private Point() { }
}
class ColoredPoint extends Point {
int color;
}但是,一但将这两个类放到一个外部类中却编译通过了。代码为:class test{
class Point {
private Point() { }
}
class ColoredPoint extends Point {
int color;
}
}到底怎么回事呢?
解决方案 »
- 求助--毕业设计在pudn上下几个资料
- 在 JSP 中引入 JSTL 的问题
- 没分,不能问问题?java 显示powerpoint ?
- !!!求救:在控制台下输入一个汉字字符串,怎么输出来就不是汉字本身了?!!!!!!!!!!!!!!
- 关于swing里面的事件机制
- 使用applet(Jcreator)怎么能够产生文件打开和保存对话框?
- 来者有分!!!(屏幕取词)
- 想学Java但不知道最常用的开发工具,请各位兄弟指点指点,谢谢
- 关于*.JDR的问题?
- 函数getImage(new URL(字符串)) 的疑惑
- 一个lastIndexOf的用法题, 请高手解决
- ssh框架中, 它们到底是怎么整合的,这个原理一直没搞清楚..请高手赐教
去看下 private public friendly(默认的) protect(受保护的) 的作用域范围你就清楚了.
而我觉得内部类虽然也叫做类,但不能用类的标准去定义它。我觉得它有时候更像是一个大的attribute.
是不是内部类中,能够访问Outer Class范围内的任意方法和成员。我知道内部类能够访问外部类的方法和成员,不知道它还能访问其他内部类的方法和成员。我这样理解对吗?
------------------------------
基本没错,但如果是外部类的静态变量那又另说了.
只能说象你说的这种情况是对的.
内隐类 你就把他想成方法方法 访问 private 修饰的是可以的,所以 ,我就不说了
class Point {protected int n;}
class OuterColoredPoint extends Point {
public void t(){
n=2; //OK,can access superclass's protected member
super.n=3;//OK
}
}
这种情况下“n=2;”与“super.n=2;”是不是相同的?从调试信息看两者都是相同的。但是如果将protected改为private并放到外部类中时,就出现“super.n=2”正确而“n=2;”编译错误的情况了。
class test2{
class Point {
private int n;
}
class OuterColoredPoint extends Point {
public void t(){
n=2; //error ,cannot access superclass's private member
super.n=3;//OK,but how to explain?
}
}
}
class test2{
class Point {
private int n;
}
class OuterColoredPoint extends Point {
public void t(){
n=2; //error ,cannot access superclass's private member
super.n=3;//OK,but how to explain?--这里也是提示can't access
}
}
}