class A
{
public A()
{
b();
}
private void b()
{
System.out.println("A");
}
}
class A1 extends A
{
public A1()
{
super();
b();
}
private void b()
{
System.out.println("A1");
}
}
class A2
{
public static void main(String [] args)
{
A1 a1=new A1();
}
}
与
class A
{
public A()
{
b();
}
void b()
{
System.out.println("A");
}
}
class A1 extends A
{
public A1()
{
super();
b();
}
void b()
{
System.out.println("A1");
}
}
class A2
{
public static void main(String [] args)
{
A1 a1=new A1();
}
}
的区别就在于有没有private 修饰,结果就大不一样,这是为什么啊?
{
public A()
{
b();
}
private void b()
{
System.out.println("A");
}
}
class A1 extends A
{
public A1()
{
super();
b();
}
private void b()
{
System.out.println("A1");
}
}
class A2
{
public static void main(String [] args)
{
A1 a1=new A1();
}
}
与
class A
{
public A()
{
b();
}
void b()
{
System.out.println("A");
}
}
class A1 extends A
{
public A1()
{
super();
b();
}
void b()
{
System.out.println("A1");
}
}
class A2
{
public static void main(String [] args)
{
A1 a1=new A1();
}
}
的区别就在于有没有private 修饰,结果就大不一样,这是为什么啊?
不加private继承类可以访问
在第一个程序里,b()是私有的,所以不是多态,所以super()里调用的是A里的b()。