黑马程序员——多态抽象类和抽象方法以及接口的总结

来源:互联网 发布:安卓图像识别 单片机 编辑:程序博客网 时间:2024/04/30 09:12
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
1.抽象类与抽象方法有abstract修饰 
2. 使用abstract时应注意一下几点:
抽象方法没有方法体            抽象成员只能存在于抽象类中      抽象类可以有非抽象成员
抽象类的派生类必须实现抽象方法体     抽象类只能用作基类,无法实例化
例子:

public abstract class oneClass

{

  public int i

  public void denylau()

  {

  }

}
3. 抽象方法概述及声明
声明抽象方法时需要注意:抽象方法必须声明在抽象类中还有就是声明抽象方法时,不能使用virtual、static、private修饰符。
在抽象类中抽象方法不提供实现。
例子: 

public abstract class myTestClass()

{

  public abstract void method();

} 
4.抽象类与抽象方法的使用
例子:
using System.Collections.Generic;

using System.Text;

namespace _
{
    public 
abstract class myClass
    {
        private string id = "";
        private string name = "";
       public string ID    
//编号属性及实现 

            { 

               get

            {

               return id;

            }

            set

            {

               id = value;

            }

        }

       public string Name//姓名属性及实现

        {

            get

            {

               return name;

            }

            set

            {

               name = value;

            }

        }


     publicabstract void ShowInfo();                     // 抽象方法,用来输出信息
    }
    public classDriveClass:myClass                    //
继承抽象类
    {
        // 
重写抽象类中输出信息的方法
    public override void ShowInfo() 

      
{
       Console.WriteLine(ID + " " + Name);
    }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DriveClassdriveclass = new DriveClass();        //
实例化派生类
            
myClass myclass = driveclass;                 //使用用派生类对象实例化抽象类
      myclass.ID="0001";
 //使用抽象类对象访问抽象类中的编号属性
            
myclass.Name="TM";     //使用抽象类对象访问抽象类中的姓名属性
            
myclass.ShowInfo(); //使用抽象类对象调用抽象类中的的抽象方法
                                   

        }
    }

} 
5.抽象类和接口的区别
 第一,
抽象类中包含字段、构造函数、析构函数、静态成员或常量等,接口中不可以。
 第二,
抽象类中的成员可以私有的(只要不是抽象的)、受保护的、内部的或受保护的内部成员,但接口中的成员必须是公共的。
 第三,
抽象类和接口这两种类型用于完全不同的目的。抽象类主要用作对象系列的基类,共享某些主要特性,例如共同的目的和结构。接口则主要用于类,这些类在基础水平上有所不同,但仍然可以完成某些相同的任务。 
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ---------------------- 


0 0