class Super
{
private int s; Super()
{
s = 100;
System.out.println(s);
}
}class Sub extends Super
{
Sub()
{
super();
}
}class SS
{
public static void main(String[] args)
{
Sub s1 = new Sub();
}
}问题:
private修饰的类不是不能应用于子类吗?为什么没有报错!
表 修饰符的作用范围
修饰符 类 子类 包 所有类和包
public 可以 可以 可以 可以
private 可以 不能 不能 不能
protected 可以 可以 可以 不能
package 可以 不能 可以 不能
{
private int s; Super()
{
s = 100;
System.out.println(s);
}
}class Sub extends Super
{
Sub()
{
super();
}
}class SS
{
public static void main(String[] args)
{
Sub s1 = new Sub();
}
}问题:
private修饰的类不是不能应用于子类吗?为什么没有报错!
表 修饰符的作用范围
修饰符 类 子类 包 所有类和包
public 可以 可以 可以 可以
private 可以 不能 不能 不能
protected 可以 可以 可以 不能
package 可以 不能 可以 不能
解决方案 »
- java.lang.NullPointerException 错误
- java截获数据包问题。
- DBconn.executeQuery:[Microsoft][SQLServer 2000 Driver for JDBC]Error establishin
- 新手问题: JAVA对声音处理的问题.....请各位大虾救
- 请教大家一个JAVA中关于文件保存的问题
- 类为什么不能是 protected 的??
- 【菜菜的问】java操作windows剪贴板的模块是哪个啊?
- 深夜了,有个问题无法解决,无法入睡!!
- 大家好,我初次来到JAVA版,想结识一些用JAVA的朋友
- 谁帮我理清一下所有的修饰符的搭配情况啊?比如public不能和private连用,而static可以和native连用.
- 【新手提问】SQL删除无效,百思不得其解.求高手帮忙
- swing界面间 传递数值的问题
是指private int s?不能访问而已!又不是没有继承
这时子类不能直接访问父类的私有成员,但还继承了父类的方法和属性.
所以不会报错.
问题:
private修饰的成员变量(属性)不是不能应用于子类吗?为什么没有报错! ,不是子类不能访问吗?为什么最后还可以打印出来.
S = 100
表 修饰符的作用范围
修饰符 类 子类 包 所有类和包
public 可以 可以 可以 可以
private 可以 不能 不能 不能
protected 可以 可以 可以 不能
package 可以 不能 可以 不能
{
s = 100;
System.out.println(s); //这里打印,它是在本类中啊,当然可以打印了.
}
问题:
private修饰的成员变量(属性)不是不能应用于子类吗?为什么没有报错! ,不是子类不能访问父类的私有变量吗?为什么最后还可以打印出来.
S = 100 表 修饰符的作用范围
修饰符 类 子类 包 所有类和子类 private 可以 不能 不能 不能
public 可以 可以 可以 可以
protected 可以 可以 可以 不能
package 可以 不能 可以 不能
private修饰的成员变量(属性)不是不能应用于子类吗?为什么没有报错! ,不是子类不能访问父类的私有变量吗?为什么最后还可以打印出来.
——————————————————————————
子类不是不能访问父类的私有变量,是不能直接访问父类的私有变量。子类会继承到父类的所有属性和方法,可以通过父类公开的一些方法来间接访问父类的私有变量
1、成员变量和static方法是不继承的,没有多态。
2、子类构造体调用时首先调用父类构造体
3、父类构造体调用自己的成员变量
private int s = 100; Super() {
abc();
} void abc() {
System.out.println("s " + s);
}
}
class Sub extends Super {
private int s1 = 200; void abc() {
System.out.println("s1 " + s1);
}
public static void main(String[] args) {
new Sub();
}}