Java的接口和C++的虚类的相同和不同处。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【morelies】截止到2008-06-29 04:37:14的历史汇总数据(不包括此帖):
    发帖数:0                  发帖分:0                  
    结贴数:0                  结贴分:0                  
    未结数:0                  未结分:0                  
    结贴率:-------------------结分率:-------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    首先接口是用来实现多重继承的。
    接口,我们首先是可以多个类去继承,比如
     Interface AddBonus
    {
       void mySalary();
    }
     Interface MinBonus{
      void bossSalary();}
     
    我们可以在多个类中继承两个接口所含的空方法,比如是一个大会社的项目,
    他有工厂的工人,总部写字楼的白领,但他们都要有奖罚,
    可以令他们继承这两个接口
    工人发奖金//十年碰了一次,他们很感动,暗自发誓要多干活(即自身可以有自己的方法)
    public class Work
    class Work: AddBounus
     {
         private void mySalary(doSomthing);
         prvate void WorkHard(do something);
    }
    可是白领干的也不错,她们加了钱,又应为犯错,又扣钱了,那么她们要同时继承这两个接口
    class WhiteColor:AddBounus, MinBonus
    {
      private void mySalary(doSomthing);
       private void bossSalary(doSomething);
       private void  LeaveComany(I'll go);}
    c++ 中的虚类相当于java 中的抽象类,抽象类没有具体的方法实现,只有虚方法,她靠子类来实现多态,
    比如公司中的员工的工资不一样,我们可以使用抽象类,抽象类里面在定义个虚方法
    abstract class Employee{
    virtual Salary();
    }
    子类经理override 这个方法
    class Manager:Employee
    {
         private overrride Salary("Higher level");}部门 lead
    class  Lead
    {
       private override Salary("Middle level");
    }你看我们是在一个基类中实现了多种发工资的方法。
    由上可见接口,抽象类有大的灵活性,你记住抽象类里面可以有接口,但接口里面不能有抽象类,在实际开发用接口还是用抽象类,要根具项目来,C# 子类必须要实现基类(父类所有虚方法)