【原】2个面试问题(与同事李将的交流)

今天和李将交流了2个问题:
第一,口头说明虚方法、抽象方法、接口之间的异同和使用场景;
第二,脱离IDE,手写一个简单的WinForm程序(例如包括布局整齐的两个文本框和三个按钮、点击按钮弹出消息框显示文本框内容),然后在命令行编译运行。


第一题答案
虛函数:由virtual声明,它允许在派生类中被重写,要重写方法,必须先声明为virtual

public class myclass
{
    
public virtual int myint()
    
{
        函数体;
    }

}

class myclass1:myclass
{
    
public override int myint()
    
{
        函数体1;
    }

}


抽象类、抽象函数:由abstract声明,在抽象类中可以定义抽象方法,抽象方法基本沒有执行代码,派生类必须重写它,提供其执行代码

public abstract class myclass
{
    
public abstract int myint();
}

public class myclass1:myclass
{
    
public override int myint()
    
{
        函数体;
    }

}


接口类:由interface声明,是特殊的抽象类,是方法、属性、事件和索引符的组合,沒有字段,其成员无执行方式,无构造函数,不允许进行运算符重载,接口和它的没有任何访问修饰符,它总是公共的,不能声明为虚拟或静态,继承自接口的派生类必须实现接口中的所有方法

interface Imyinterface
{
    
void myfunction();
    
string name
    
{
        
get;
        
set;
    }

}

class myclass:Imyinterface
{
    
void myfunction()
    
{
        函数体;
    }

    
string name
    
{
        
get
        
{
            
return name;
        }

          
set
        
{
            name
=value;
        }

    }

}

 

posted @ 2008-01-09 12:54  temptation  阅读(528)  评论(3编辑  收藏  举报