什么是.net的接口和抽象类(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:10个ASP.NET编程技巧
1、尽量减少表单回送 每当点击Web网页上的Button、LinkButton或ImageButton控件时,表单就会被发送到服务器上。如果控件的AutoPostBack属性被设置为true,如果CheckBox、CheckBoxList等控件的状态被改变后,也会使表单会发送回服务器。 每次当表单被发送回服


  设计结构如图所示:
你必须知道的.NET之对接口和抽象类系统中心 
  1. 定义抽象类
public abstract class Animal
{
 protected string _name;
 //声明抽象属性
 public abstract string Name
 {
  get;
 }

//声明抽象方法

public abstract void Show();

//实现一般方法

public void MakeVoice()
{
 Console.WriteLine("All animals can make voice!");
}
 }

 

2. 定义接口
public interface IAction
{
 //定义公共方法标签
 void Move();
}

3. 实现抽象类和接口
public class Duck : Animal, IAction
{
 public Duck(string name)
 {
  _name = name;
 }
//重载抽象方法

 public override void Show()
 {
  Console.WriteLine(_name + " is showing for you.");
 }

 //重载抽象属性

 public override string Name
 {
  get { return _name;}
 }

//实现接口方法

public void Move()
{
 Console.WriteLine("Duck also can swim.");
}
}

public class Dog : Animal, IAction
{
 public Dog(string name)
 {
  _name = name;
 }
 public override void Show()
 {
  Console.WriteLine(_name + " is showing for you.");
 }

 public override string Name
 {
  get { return _name; }

 }

 public void Move()
 {
  Console.WriteLine(_name + " also can run.");
 }
}

4. 客户端实现
public class TestAnmial
{
 public static void Main(string [] args)
 {
  Animal duck = new Duck("Duck");
  duck.MakeVoice();
  duck.Show();
  Animal dog = new Dog("Dog");
  dog.MakeVoice();
  dog.Show();
  IAction dogAction = new Dog("A big dog");
  dogAction.Move();
 }
}

  dunai认为:抽象类是提取具体类的公因式,而接口是为了将一些不相关的类“杂凑”成一个共同的群体。至于他们在各个语言中的句法,语言细节并不是我关心的重点。 
  Artech认为:所代码共用和可扩展性考虑,尽量使用Abstract Class。当然接口在其他方面的优势,我认为也不可忽视。
  shenfx认为:当在差异较大的对象间寻求功能上的共性时,使用接口;当在共性较多的对象间寻求功能上的差异时,使用抽象基类。
  最后,MSDN的建议:
  如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单易行的方法来控制组件版本。通过更新基类,所有继承类都随更改自动更新。另一方面,接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口。
  如果创建的功能将在大范围的全异对象间使用,则使用接口。抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。
  如果要设计小而简练的功能块,则使用接口。如果要设计大的功能单元,则使用抽象类。
  如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。抽象类允许部分实现类,而接口不包含任何成员的实现。

分享:asp.net回发或回调参数无效解决方法
首先,这个问题出现在asp.net2.0中,我是在做一个二级菜单出现了这个问题 , 该功能用javascript改变DrownDownList内容后再提交就出现这个错误, 总结 网上的解决 回发或回调参数无效 方法主要有: 一是在前台aspx页中设置 %@ Page Language=C# EnableEv

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2010-06-02
相关.Net教程