抽象方法的问题
什么时候定义抽象方法,为什么定义成抽象的,怎么定义
[解决办法]
抽象方法就是把具体实现留给派生类,达到实现与意图的分离,其实也可以用接口来实现
[解决办法]
抽象方法用于对象不需要或不能够实现却要求子类必须实现的场景...
例如...人.说话()方法,你构造“人”这个类时无法确定“人”如何说话,只有它的子类才能实现,如中国人.说话(){讲中文;}...俄国人.说话(){讲俄文;}...
[解决办法]
关于什么时候定义抽象方法,楼主可以参考一下“模板方法模式”,我想你应该会从中得到启示。
[解决办法]
建议用接口.
总之我也说不清楚为什么,看网上好多人都这么写代码.
[解决办法]
abstract class Animal{ public string name; public int age; public void Move() { Console.WriteLine(“动物都是可以动滴!!!”); } public abstract void Sound(); //抽象方法} class Dog :Animal //继承{ public int Legs=4; public override void Sound() { Console.WriteLine(“狗狗叫:汪!汪!汪!”); }} class Snake:Animal //继承{ public override void Sound() { Console.WriteLine(“蛇发出丝~~丝~~的声音”); }}class MyPet{ static void Main() { //Animal MyAnimal=new Animal();错误的,抽象类不能实例化 Dog MyDog=new Dog(); Snake MySnake=new Snake(); MyDog.name=“小白”; MyDog.age=5; MyDog.Sound(); MySnake.name=“斯内普”; MySnake.age=10; MySnake.Sound(); }}
[解决办法]
抽象方法属于类,即当属于一类的时候用抽象类,例如卡车和小汽车都属于车,这是车类可以定义为抽象类,里面定义一些抽象方法供派生类实现。接口属于一种约束,当没有内部联系的时候,而是仅仅约束某个类要实现某种功能,这时候用接口。
[解决办法]