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.在父类中不知道如何去实现这个方法(没有默认的实现。)
今天到这,明天重点接口!!!
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/tq1226112215/
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。