ASP.Net软件工程师基础(三)

本文详细介绍了面向对象编程中的多态概念,包括虚方法、抽象方法及接口的定义与使用方式,并对比了虚方法与抽象方法的区别。

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.在父类中不知道如何去实现这个方法(没有默认的实现。)

 

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

转载于:https://www.cnblogs.com/tq1226112215/p/3456757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值