如题:请指教,谢谢

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4897/4897082.xml?temp=.3852808关于继承和多态,看看这个帖子...
      

  2.   

    对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。
    在java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。  1) 编译时多态
      在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。  2) 运行时多态
      由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。  重写方法的调用原则:java运行时系统根据调用该方法的实例,来决定调用哪个方法。对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。  在下面例中,父类对象a引用的是子类的实例,所以,java运行时调用子类B的callme方法。
    import java.io.*;
      class A{
         void callme( ) {
          System.out.println("Inside A's callme()method"); 
         } 
      }
      class B extends A{
         void callme( ) {
          System.out.println("Inside B's callme() Method"); 
         }
      }
      public class Dispatch{
         public static void main(String args[]) {
          A a=new B();
          a.callme( );
         }
      }     方法重写时应遵循的原则:
      1)改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。
      2)改写后的方法不能比重写的方法产生更多的例外。