浅谈 接口(Interface)的作用

简介:  继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.

 继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的
 
1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类
《至少》要实现哪些功能,继承它的类可以增加自己的方法.

2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如:  两个类 "狗"和"猫",如果它
们都继承了接口"动物",其中动物里面有个方法Behavior(),那么狗和猫必须得实现Behavior()方法,
并且都命名为Behavior这样就不会出现命名太杂乱的现象.如果命名不是Behavior(),接口会约束
即不按接口约束命名编译不会通过.

3.提供永远的接口。 当类增加时,现有接口方法能够满足继承类中的大多数方法,没必要
  重新给新类设计一组方法,也节省了代码,提高了开发效率.
  举个代码示例:
  
//公共接口: "动物"
  public Interface IAnimal
 
{
     
int EyeNumber;
     
private void Behavior();  //行为方法,描述各种动物的特性
  }


 
//类: 狗
  public Dog : IAnimal
 
{
     
string ActiveTime = "白天";
     
private void Behavior()
     
{               {
         Console.Write(
"我晚上睡觉,白天活动");
      }

  }


 
//类: 猫
  public Cat: IAnimal
 
{
     
string ActiveTime = "夜晚";
     
private void Behavior()
     
{               {
         Console.Write(
"我白天睡觉,晚上活动");
      }

  }



 
//简单的应用:
  public static Main()
 
{
      Dog myDog
= new Dog();
      myDog.Behavior();  
//输出: "我晚上睡觉,白天活动"
      Cat myCat = new Cat();
      myCat.Behavior();  
//输出: "我白天睡觉,晚上活动"
  }

  以上调用不同的类的相同名方法,会输出不同的东东,也就是说每个类里面的同名方法完成的
  功能可以是完全不同的.

 

  更进一步,不是用上面Main方法这样一个一个调用类的方法,用多态性实现其调用.
  看一下下面这个方法:
  public Behavior(IAnimal myIanimal)
 
{
      myIanimal.Behavior();
  }

  其参数是<<接口类型>>,任何继承它的类都可以调用此方法,此方法能根据类的不同调用不同的类
  中的方法. 也即能够自己根据不同的类,完成不同的类的功能.
  多态性代码示例:  
     Dog myDog = new Dog();
Cat myCat
= new Cat();
  Behavior(myDog); 
//Behavior接受“狗”类实例
  Behavior(myCat);  //Behavior接受“狗”类实例
  这样Behavior方法写一次就能完成所有继承它的类中的相同名方法的不同功能. 非常方便,

  同样,由于“动物软件”功能需求,需要再增加一个"龟"类:
  //类: 龟
  public Tortoise: IAnimal
 
{
     
string ActiveTime = "很难说";
     
private void Behavior()
     
{               {
         Console.Write(
"我可以不活动,一睡就睡五千年!");
      }

  }

  那么也可以调用上面多态方法,所以说接口使方法具有较好扩展性.
  如果继承它的类很多的话,有多少好处是可想而知的!


  上面是个人对接口某些方面的一些认识,当然接口的作用不只是这些.
  不对的地方请读者批评指正!

相关接口文章,请看:

        http://www.uml.org.cn/j2ee/2004090801.htm

目录
相关文章
|
2月前
|
C#
C# 接口(Interface)
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。 接口使得实现接口的类或结构在形式上保持一致。 抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。 接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。 抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。
51 9
|
7月前
|
Java
接口(interface)
接口(interface)
|
Java
Java面向对象 接口(interface)的详解
Java面向对象 接口(interface)的详解
106 0
抽象类和接口(Abstract and Interface)精湛细节
抽象类和接口(Abstract and Interface)精湛细节
|
Java 编译器 开发工具
@interface的用法
@interface的用法
|
Go Python
Go-接口类型详解(定义、实现、接口继承比较等)
Go-接口类型详解(定义、实现、接口继承比较等)
310 0
Go-接口类型详解(定义、实现、接口继承比较等)
|
安全 架构师 Java
java接口(interface)的四个作用
java接口(interface)的四个作用
315 0
|
XML Java 数据库连接
EnvironmentAware接口的作用
凡注册到Spring容器内的bean,实现了EnvironmentAware接口重写setEnvironment方法后,在工程启动时可以获得application.properties的配置文件配置的属性值。
287 0
|
Python
Python编程:zope.interface实现接口
Python编程:zope.interface实现接口
164 0