首页 > Windows开发 > 详细

C#进阶学习2--抽象方法(abstract)

时间:2021-06-29 13:43:34      阅读:36      评论:0      收藏:0      [点我收藏+]

一.定义

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象

定义关键字:abstract

重写关键字:override

二.抽象类特点

1.抽象方法一定要写在抽象类中,

2.抽象方法没有方法体

3.抽象类可以包含非抽象的方法,如普通方法,虚方法等

4.继承的子类如果没实现父类中所有的抽象方法,那么这个子类也必须是抽象类

5.抽象类不能实例化,且不能被密封(即不可使用sealed修饰),但仍然可以具有构造方法

三.抽象类与接口的异同

相同点

1.都可以被继承

2. 都不能被实例化

3.都可以包含方法声明

4.子类必须实现未实现的方法

不同点

1.抽象类只能单一继承,接口可以实现多继承

2.抽象类中可以有普通方法,虚方法等,接口只能写规范,不可实现

3.抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。

四.实例

    public abstract class Person
    {
        public string Name { get; set; }
        public int age { set; get; }
        public void SayHello()//普通方法
        {
            Console.WriteLine("我是" + this.Name + ",我的年龄是" + this.age);
        }
        public virtual int getAge()//虚方法
        {
            return this.age;
        }
        public abstract string getName();
    }

 public interface IAction
    {
        void Run();
        string Eat(string food);
    }

 public class Student : Person, IAction
    {
        public override string getName()
        {
            return "学生姓名为" + this.Name;
        }
        public string Eat(string food)
        {
            return "学生在吃" + food;
        }
        public void Run()
        {
            Console.WriteLine("学生在跑");
        }
    }

C#进阶学习2--抽象方法(abstract)

原文:https://www.cnblogs.com/zykj/p/14949288.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!