黑马程序员技术交流社区
标题:
接口和抽象类 如果有错误和不足请指出
[打印本页]
作者:
穷傻呆丑萌
时间:
2013-8-3 16:38
标题:
接口和抽象类 如果有错误和不足请指出
接口和抽象类是面向对象中最最要的两个概念,两者的作用相似,都是同一类行和规范派生类的属性和方法。
接口是一种程序的约定,其本身并不去实现成员方法,而是通过派生类来实现,接口可以使得程序更加的清晰合理,比如定义一个汽车接口
,在汽车接口中,只是定义了开车的方法,但是发动机如何启动并没有真正的实现,而是在派生类中实现了开车的方法,所以接口的作用是,规定在派生类中必须要存在开车的方法,而且要实现。
接口一般定义的格式
[attributes] [modifiers] inerface identifier [:base-list] {interface-body)} [;]
attributes 附加的定义信息
modifiers 允许使用的修饰符和NEW 和4个访问修饰符。分别是 new public protected internal priviate 。在一个接口定义中同意修饰符不允许出现多次,new修饰符只能出现在嵌套接口中,表示覆盖了继承而来的同名成员 public protected 和priviate 修饰符定义了对接口访问的权限
<p> </p>
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace a
{
interface A
{
public void aa();
public void bb();
}
class a : A
{
public void aa()
{
Console.WriteLine("这是借口的方法1");
}
public void bb()
{
Console.WriteLine("这是借口的方法2");
}
}
class Program
{
static void Main(string[] args)
{
a abc = new a();//这里需要注意一下,实例化的是类而不是借口
abc.aa();
abc.bb();
}
}
}
复制代码
抽象类的作用和接口类似,同样也定义了一些实现的方法,与接口不同的是,其中有一些方法已经实现了,使用从概念上来讲,抽象类是结余接口和类之间的一种特殊类
有时候类表达的并不是一个具体的事物,而是一个比较抽象的概念,使用,C#引入了一个新的概念,抽象类。
抽象类使用的abstract关键字定义,次关键字放在class前面 表示此类是抽象类。
抽象类的功能和接口类似,其中也定义了一些派生类必须要实现的方法,抽象类中的方法呗称为抽象方法。
抽象类中的抽象方法是通过派生类实现的,而抽象类有可以继承接口,这样三者之间就形成了比较复杂的继承关系,在设计代码的时候,灵活利用三者的继承关机可以适使得“低耦合”“高内聚”的特点体现的更加明显
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace a
{
class Program
{
static void Main(string[] args)
{
rectangle aaa = new rectangle();
Console.WriteLine("矩形的面积是:{0}",aaa.GetArea(100,50));
}
}
abstract class Shape
{
abstract public double GetArea(double x,double y);
}
class rectangle : Shape
{
public override double GetArea(double x, double y)
{
return x * y;
}
}
}
复制代码
作者:
许庭洲
时间:
2013-8-3 21:25
值得学习ing!
作者:
彭家贰小姐
时间:
2013-8-7 09:58
20111209121939224.gif
(20.85 KB, 下载次数: 15)
下载附件
2013-8-7 09:58 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2