对于继承这一章,确实是有点麻烦,就拿protected来说,如果我的类名称是它的话,那么就会发生一些莫名奇妙的错误判断,以下是我编译时的感悟,也许不是太正确,请大侠多多指教。
protected.java:3: 需要 <标识符>
public class protected {
^
protected.java:4: 非法的表达式开始
public static void main(String[] args) {
^
protected.java:4: 非法的表达式开始
public static void main(String[] args) {
^
protected.java:4: 需要 ';'
public static void main(String[] args) {
^
protected.java:4: 需要 ".class"
public static void main(String[] args) {
^
protected.java:4: 需要 ';'
public static void main(String[] args) {
^
protected.java:9: 进行语法解析时已到达文件结尾
}
^
7 错误。
这就是系统所判断的结果,如果我换了一个类名称的话,就不会发生这样的问题。。。。。。。。。。。。。。。。。。。。
对于protected来说,确实是不能在子类中存取,但是却可以定义了一个子类,去调用基类的方法。看起来这完全是废话了。。。。。。。。。。。。。
对类可以对方法进行调用,但不能对private修饰的成员进行调用或者存取。
如果用private去修饰方法的话,系统会给出无法找出方法的提示,也就是说这个方法被隐藏了。。。。。。。。。。
我通过几次试验可以清楚的看清一些问题,我以前曾想new提供的是创作了一个类型的实例,而左边的确是赋值给一个你定义的变量,以前觉得变量情没有用的,但今天我发现但当你定义了一个变量,就决定了,你赋予了这个变量的权限。就像你创建了一个子类的实例但却赋给了一个基类,那么尽管你的子类拥有更多的方法,但是你赋给了一个基类,那么这个实例只能有进入基类接口的权限而已。子类多出的方法就不能了!。。。。。。。。。。。。。
我又做了一些简单的java程序,证明我上一段对java的理解是有一定的道理的。。。。。。。。。。。。。。。。。。。。。。。
还有一些是一些细节方面之间的问题了。当调用又返回值的方法时,一定要super.methodname();但不要忘了return关键词。。。。。。。。。。。