把子类对象复制给父类,调用方法时调用的是父类的。在Java中,当你将子类对象复制给父类对象时,实际上是创建了一个新的父类对象,其中包含了子类对象的所有属性和方法。因此,当你调用父类对象的方法时,实际上是调用了父类对象的方法,而不是子类对象的方法。
举个例子,假设你有一个父类Person,它有一个方法sayHello(),以及一个子类Student,它也有一个方法sayHello()。现在,如果你将一个Student对象复制给一个Person对象,那么这个Person对象就会包含一个Student对象的所有属性和方法,包括sayHello()方法。当你调用Person对象的sayHello()方法时,实际上是调用了Person对象的sayHello()方法,而不是Student对象的sayHello()方法。
需要注意的是,当你从子类继承父类的属性和方法时,子类对象可以访问父类对象的属性和方法,但是当你从父类继承子类的属性和方法时,父类对象无法访问子类对象的属性和方法,因为父类对象只包含了子类对象的属性和方法,而不包含父类对象的属性和方法。
子类重写父类的方法,子类对象在上溯类型转换后是调用子类重写的还是父类的方法
调用的还是子类重写的方法~ 继承时,重写的多态只要记住一点就行..声明是什么,就只能调用它的方法,即 声明是父类,就只能调用父类的方法~
实例化是什么,就执行它的方法,即 实例化是子类,那就执行子类的方法~实例化是父类,就执行父类的方法~
给你写了段小程序,你运行一下就知道了~
package test;
public class ClassTest {
public static void main(String[] args) {
B b = new B();
b.print(); //调用B的print方法
b.prints(); //调用B的prints方法
A a = (A)b;
a.print(); //调用B的print方法
//a.prints();//这里如果这样写,无法通过编译
a = new B();
a.print(); //调用B的print方法
a = new A();
a.print(); //调用A的print方法
}
}
class A {
public void print(){
System.out.println("A~~~~~~~~");
}
}
class B extends A {
public void print(){
System.out.println("B~~~~~~~~");
}
public void prints(){
System.out.println("BA~~~~~~~~");
}
}
子类调用父类方法时,父类再调用方法是子类还是父类的
.类 B 继承类 A ,它有一个自己的数据 b;那么 B 就有 a,b 两个数据成员。但 B 无法自己修改 a ,因为 a 是继承过来的,是私有的,只能由 A 来修改。B 调用构造方.以上便是排行榜大全网整理的把子类对象复制给父类,调用方法时调用的是父类的还是子类的的全部内容,关注我们获取更多资讯信息。
相关推荐: