关于重载,重写和多态

重载和重写(或叫覆盖)很容易区分,它们的区别在于函数签名,重载是统一个类中,函数名相同而参数列表不同造成的一种灵活的函数调用.重写是在继承时候出现,子类和父类的函数名完全相同,即重写.

多态是在重写后会出现的一种现象,两者存在因果关系,但在JAVA和C++中有所不同.在JAVA中重写即会出现多态的现象.是自动实现的.如:

B是A的子类

代码
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();
}
结果是B,print()的调用不取决于引用的类型,而取决于对象的类型.这就是多态.

在C++中,同样的代码会产生不同的结果,会是A,因为C++不会自动实现多态,C++中要实现多态,必须使用关键字virture来将父类方法声明为虚方法.

posted @ 2010-11-10 16:51  魔芋红茶  阅读(186)  评论(0编辑  收藏  举报