当First类中的aMethod方法为public时,程序的运行结果是Second,(似乎是因为重写)
而当First类中的aMethod方法为private时,程序的运行结果又是First,这是为什么啊?想不通当一个类被继承时,它的构造方法 和private方法、属性到底会不会被继承呢?!期待各位指点!class First{
public First(){
aMethod();
}就是这里——>private void aMethod() {
System.out.println("First");
}
}
public class Second extends First{
public void aMethod() {
System.out.println("Second");
}
public static void main(String[]args){
new Second();
}
}
而当First类中的aMethod方法为private时,程序的运行结果又是First,这是为什么啊?想不通当一个类被继承时,它的构造方法 和private方法、属性到底会不会被继承呢?!期待各位指点!class First{
public First(){
aMethod();
}就是这里——>private void aMethod() {
System.out.println("First");
}
}
public class Second extends First{
public void aMethod() {
System.out.println("Second");
}
public static void main(String[]args){
new Second();
}
}
构造方法无论怎样,都是不能被继承的。
构造方法也是不被继承的,但可以用super关键字来调用
private方法不会被继承
所以会是结果first
public方法会被继承
如果子类中进行了重写
结果当然是子类产生的了
不过记得有一次看视频, 老师说所有都会被继承,但private的只是不能直接用罢了,不知道对不对
System.out.println("Second"); } , 子类只是自己定义了一个方法而已. 跟父类无关. 要想调用父类的方法, 用super关键字.