相关文章:
关于JAVA的继承!有兴趣的可以进来讨论一下!
关于super的疑惑,已问过多人未果,请指点
对java方法的访问控制的深思考 推荐圈子: 每日一题JAVA
更多相关推荐 程序如下:
类A:
package cn; public class A {
protected void proMethod()
{
System.out.println("base protected method");
}
} A中有protected方法。 B类为A类的子类(包名不同): package com;
import cn.A;;
public class B extends A{
public static void main(String[] args) {
A a = new A();
a.proMethod();
}
}
以上B中的a.proMethod();出错。出错信息为:The method proMethod() from the type A is not visible 为什么?protected方法不是可以对子类公开的吗?
关于JAVA的继承!有兴趣的可以进来讨论一下!
关于super的疑惑,已问过多人未果,请指点
对java方法的访问控制的深思考 推荐圈子: 每日一题JAVA
更多相关推荐 程序如下:
类A:
package cn; public class A {
protected void proMethod()
{
System.out.println("base protected method");
}
} A中有protected方法。 B类为A类的子类(包名不同): package com;
import cn.A;;
public class B extends A{
public static void main(String[] args) {
A a = new A();
a.proMethod();
}
}
以上B中的a.proMethod();出错。出错信息为:The method proMethod() from the type A is not visible 为什么?protected方法不是可以对子类公开的吗?
解决方案 »
- java连接access2007的问题
- Vista下如何使用getRemoteAddr获取ipV4地址? 我获得的都是ipv6
- 一道 Java 面试题
- 一个棘手的问题
- 怎样修改Eclipse中的Tab键的移动格数?
- 求助:有一个程序只有界面,没有功能,是个简单的统计程序,哪位热心高手能帮忙实现,很急,高手可能半个小时不到就可以完成,我会报答你
- readInt问题,急
- 一个很基本的问题,本人初学,知道的请回。。。
- 《Effective Java Programming》的中译本《Java高效编程指南》(机械工业出版社)如何??(内空)
- 怎麼在網頁裡實現用回車傳遞焦點?用javascript.
- 喜欢GUI的朋友,介绍个网址给你们
- 这个action跳转到那个页面或者程序里去了
import cn.A;
public class B extends A{
public static void main(String[] args) {
B b=(B)new A();
b.proMethod();
}
} 这样写就可以了,你看看protected 以及多态吧
import cn.A;public class B extends A {
public static void main(String[] args) {
//A a = new A();
//a.proMethod();不在同一个包中无法访问A类的protected方法
B b = new B();
b.proMethod(); //子类从父类继承来的protected方法,可以访问
}
}
2、同一包中的类package cn;
public class C {
public static void main(String[] args) {
A a = new A();
a.proMethod(); //同一包中可以调用
B b = new B();
b.proMethod(); //子类从父类继承来的protected方法,可以访问
}
}
被protected定义的类成员表明,任何子类都能够通过继承来访问它然而这并不意味着子类能够通过父类的实例来访问(排除他们在同一个包内的状况)
就像楼主的
A a = new A();
a.proMethod(); 也就是说protected等于继承,对于包外子类,只能通过继承来访问父类protected的成员
包package1中有类A
类A有一个成员变量是 protected int x = 1包package2中有类B,类B继承类A包package2中还有一个类C请问,在类C中new一个类B的实例
能通过这个实例访问类B继承自类A的变量 x 吗
建议楼上的不要乱up,先辨明真伪
〉protected 的访问范围有两种:子类和同一包中的类同一个包里的,拥有默认访问级别的方法都是可以访问的,讨论protected有何意义?
子类?
楼主也是在子类里访问的,怎莫就报错呢