如下代码,由于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;
}
}到底怎么回事呢?
解决方案 »
- 新手求教:判断为一个数是否为五位数时,输入五位数,也提示重新输入?
- 快速排序+插入排序
- Java Socket一次可以传输多个文件
- 为什么JFrame的BorderLayout布局通不过?
- 做一个博客系统
- 请教关于UDP SOCKET丢包的问题
- 论文快完了,遇到问题了
- 请问在JAVA中有没有提供对C或C++接口的访问
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")时遇到的问题,谢谢
- Java 视图缓冲区 是什么意思?? 新手请指点
- 一个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
}
}
}