不鸣则已

海阔凭鱼跃,天高任鸟飞!

首页 新随笔 联系 订阅 管理

1、多态

答:

(1)虚方法

public class Child : Person
{
    public void Speach()
    {
        base.Speach();
    }

    public virtual void Say()//虚方法
    {
    }
}
虚方法的定义

(2)抽象方法(必须声明在抽象类中)

public abstract class Animal
{
    public abstract void Say();
}
抽象方法的定义

(3)接口

public interface ISay
{
    void Say();
}
接口的定义

虚方法和抽象方法的区别

虚方法必须有实现,抽象方法必须没有实现

抽象方法必须在抽象类中声明,虚方法可以出现在抽象类中

抽象方法必须在子类中重写,虚方法可以被重写

(4)重写(虚方法、抽象方法、接口中定义的方法)

public class Bird : Animal
{
    public override void Say()
    {
        throw new NotImplementedException();
    }
}
重写

虚方法和抽象方法的区别

虚方法:

1.父类中必须有实现。

2.子类中可以不重写。

3.虚方法可以在普通类中。(虚方法所在的类是可以被实例化的。)

抽象法:

1.父类中不能有任何实现。

2.子类中必须重写(除非:子类也是一个抽象类。)

3.抽象方法必须在抽象类中。

什么时候用虚方法?

1.父类本身需要被实例化

2.这个方法在父类中有实现的必要(有意义)(方法有默认的实现)

什么时候用抽象方法?

1.在当前系统中,父类绝对不会被实例化。Person p=new Person();

2.在父类中不知道如何去实现这个方法(没有默认的实现。)

 

今天到这,明天重点接口!!!

posted on 2013-12-03 23:50  唐群  阅读(132)  评论(0编辑  收藏  举报