相关文章:
关于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方法不是可以对子类公开的吗?
解决方案 »
- 类的友好变量和友好方法如何理解?
- swt中如何制作特殊形状的面板
- 如何改一下这段代码可以使静态方法访问非静态的呢
- 求文件管理源码
- 急请教UDP Socket中如何设置包的大小及其他
- 使用FileReader类、LineNumberReader类是否只能抛出IOException,不能抛出自定义类,请详细解释!
- java 能否些写网络监控程序?能谈下思路吗?
- 弱弱的问:JAVA提供的API函数是不是在WINDOWS里面和LINUX里面都能调用啊?
- 小虾问大虾,你都知道啥!!!(有关序列化)
- 请教:利用socket通讯时,为何两边都无法读到数据????
- 喜欢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有何意义?
子类?
楼主也是在子类里访问的,怎莫就报错呢