首页 > 代码库 > 抽象类、借口、构造函数、静态方法成员

抽象类、借口、构造函数、静态方法成员

一、抽象类(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;
        }
    }

 

抽象类、借口、构造函数、静态方法成员