关于重载,重写和多态
重载和重写(或叫覆盖)很容易区分,它们的区别在于函数签名,重载是统一个类中,函数名相同而参数列表不同造成的一种灵活的函数调用.重写是在继承时候出现,子类和父类的函数名完全相同,即重写.
多态是在重写后会出现的一种现象,两者存在因果关系,但在JAVA和C++中有所不同.在JAVA中重写即会出现多态的现象.是自动实现的.如:
B是A的子类
代码
结果是B,print()的调用不取决于引用的类型,而取决于对象的类型.这就是多态.
public class A
{
public void print()
{
System.out.println("A);
}
}
public class B extends A
{
public void print()
{
System.out.println("B");
}
}
public static void main()
{
A a=new B();
a.print();
}
在C++中,同样的代码会产生不同的结果,会是A,因为C++不会自动实现多态,C++中要实现多态,必须使用关键字virture来将父类方法声明为虚方法.
本篇文章首发自魔芋红茶的博客https://www.cnblogs.com/Moon-Face/
请尊重其他人的劳动成功,转载请注明。