Tony.Y

Efforts to learn English and more about program.

 

学习日志-abstract class and interface

学一点记一点,免得忘记..

 

看了很多前辈写的关于abstract class and interface的文章,自己也试着去梳理了一遍。

 

abstract class :

1.抽象类不能实例化。

2.抽象类可以有构造方法,可以在其派生类中调用。

3.抽象类中的抽象方法(没有方法体)在派生类中必须重写,非抽象方法(有方法体)可以不重写。

4.抽象类可以有字段,属性,方法,构造函数等成员。
5.抽象类对于接口只能满足单一继承。

 

 

代码
    abstract class Myabstract
    {
        
public Myabstract()
     {
       Console.WriteLine("Abstract class constructors"); 
     }
        
public abstract void abstractMethod();
        
public void Method()
        {
            Console.WriteLine(
"Myabstract Method");
        }
    }

 

 

interface:

1.接口不能实例化。

2.接口不可以有构造方法。

3.接口中的方法不需要方法体,在派生类中必须重写方法。

4.接口不可以有字段。
5.接口的方法不需要修饰符,其含义类似public。

6.接口可以满足“多继承”。

 

 

    interface MyInterface
    {
        
void interfaceMethod();
    }

 

 

 Class:

 

代码
class MyClass : Myabstract,MyInterface
    {
        
public MyClass()
            : 
base()
        {
        }

        
public override void abstractMethod()
        {
            Console.WriteLine(
"MyClass Override Abstract Method");
        }

        
public void interfaceMethod()
        {
            Console.WriteLine(
"MyClass Override Interface Method");
        }
    }

 

 

Main Method:

 

代码
    class Program
    {
        
static void Main(string[] args)
        {
            MyClass myclass 
= new MyClass();
            myclass.abstractMethod();
            myclass.interfaceMethod();
            myclass.Method();
        }
    }

 

 

输出:

Abstract Class Constructors

MyClass Override Abstract Method

MyClass Override Interface Method

Myabstract Method

 

 

 

posted on 2010-06-20 13:49  Tony.Y  阅读(229)  评论(0编辑  收藏  举报

导航