zoukankan      html  css  js  c++  java
  • 抽象类、借口、构造函数、静态方法成员

    一、抽象类(abstract)

    1、定义:抽象类是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类,它不能生成对象;
    抽象类是不完整的,它只能用作基类。在面向对象中中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
    2、特点:
    • 抽象类不能实例化。
    • 抽象类可以包含抽象方法和抽象访问器及非抽象类,但抽象方法一定在抽象方法中。
    • 从抽象类派生的非抽象类必须子类继承之后实例化再调用。
    • 不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。

    注:抽象类是减少代码重写时被继承代码重复量,即:抽象类是用来被继承,常与override连用

    二、接口(interface)

    1、定义:接口是抽象类的变体。在接口中,所有方法都是抽象的,没有一个有程序体。

    2、结构:数据类型  函数名()

    子类实现接口中的方法,不需要override关键字

    例:

    static void Main(string[] args)
            {
                bird b=new bird();
                
                Console.WriteLine(b.eat());
                Console.WriteLine(b.flying());
     Console.WriteLine(b.sing()); Console.ReadLine(); }
    public abstract class fly { public abstract string flying(); public string eat() { return "吃饱了才能飞"; } }

    public interface jiao
    {
    string sing();
    }

    public class bird :fly,jiao
        {
            public override string flying()
            {
                return "吃完虫子就要飞";
            }

    public string sing()
    {
    return "叽叽喳喳的叫";
    }

    
        }

    三、构造函数

    1、定义:构造函数 ,是一种特殊的方法,即:与类名相同的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

    例:无参数构造函数

    static void Main(string[] args)
            {
                fly b = new fly();
                Console.WriteLine(b.Name);
                Console.ReadLine();
            }
    public class fly
        {
            public fly()
            {
                _name = "jksd";
            }
            private string _name;
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
        }

    有参数构造函数

     class Program
        {
            static void Main(string[] args)
            {
                fly b = new fly("kajlk");
                Console.WriteLine(b.Name);
                Console.ReadLine();
            }
        }
    public class fly
        {
            public fly(string s)
            {
                _name = s;
            }
            private string _name;
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
        }

    四、静态方法和成员(static)

    1、定义:若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法

    2、特点:

    1. 静态方法的调用,是类名后直接加静态方法。实例方法必须将类实例化后,用实例调用该实例方法。

    2. 静态方法,只能调用类中的其他静态属性和静态方法,不能调用类中的非静态属性和非静态方法。

    3. 实例方法, 可以调用静态属性和静态方法,也可以调用实例属性和实例方法。

    4. 静态方法是属于类的必须由类来调用,实例方法是属于实例的必须实例化类后,用类的实例调用。

    例:

    class Program
        {
            static void Main(string[] args)
            {
                fly.flying("kldsl;a");
                Console.WriteLine(fly._name);
                Console.ReadLine();
            }
        }
    public  class fly
        {
            
            public  static string _name;
            public static void flying(string s)
            {
                _name = s;
            }
        }
  • 相关阅读:
    Kafka入门经典教程【转】
    利用shell找出15分钟内修改的文件
    MySQL性能剖析工具(pt-query-digest)【转】
    Python3安装配置【转】
    查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息【转】
    linux通过sendmail发送邮件
    crontab每10秒钟执行一次
    shell expect的简单用法【转】
    linux中Shell标准输出错误 >/dev/null 2>&1 分析【转】
    Ansible 插件 之 【CMDB】【转】
  • 原文地址:https://www.cnblogs.com/hclyz/p/6719133.html
Copyright © 2011-2022 走看看