`
esffor
  • 浏览: 1367768 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

interface 和 abstract interface 的区别

 
阅读更多
abstract public  interface IA ...{
    
public void run() ;
    
abstract public void setParams() ;
}

abstract public class CBase implements IA ...{
   
public CBase() ...{} 
   
abstract public String[] getParams() ...{ }
   
public void run() ...{
     String[] s 
= getParams();
     
if (s != null && s.length() > 0...{
        
for (int i=0; i<s.length() ; i++ ) ...{
           System.out.println(
"s[" + i + "]:" + s[i]));
        }

     }
   
   }

}

public class CSub entexted CBase ...{
  
public CSub() ...{}
  
protected String[] s ;
  
public String[] getParams() ...{
    
return this.s ;
  }

}

public class DSubSub extends CSub ...{
  
public DSubSub() ...{}
  
public void setParams() ...{
     
this.s = ...{"abcd""efg"} ;
  }
 
  
public static void main(String[] args) ...{
     IA dsubsub 
= new DSubSub() ;
     dsubsub.run() ;
  }

}

输出结果:
  s[
0]:abcd
  s[
1]:efg
从设计意义上来说,我举个例子:
    CBase 类是所有电器产品总类,其中的run()函数负责输出某种电器产品的库存总价值。
    CSub 类是所有小家电产品类,其中getParams()函数负责得到某种小家电产品库存总价值。
    DSubSub类是小家电中的电吹风机类,其中的setParams()函数负责电吹风机的特有计算库存产品价值的方式。
    当你的每一类电器产品都有自己不同的价值计算方式时,使用这种构架就可以很好的分类计算。
    而这些业务逻辑实现类在三层构架中是不提供给客户端调用的,提供给客户端的仅仅是Interface,那么这种设计就是相当必要的。

 

CSub 类也必须定义为abstract,
   即:  abstract public CSub extends CBase() {}


再补充说明:
    在Interface中被定义的 abstract 方法 setParams() 是不允许被客户端调用的,但它却必须被分级到诸如电吹风类的类实现,并且也只能在电吹风类中实现,因为需求是——大多数的精确到电吹风类的业务逻辑都有所不同,这时,你们说 interface 中的 abstract 是不是意义重大呢?




分享到:
评论
1 楼 accphc 2010-10-18  
默认就是abstract

相关推荐

    深入理解abstract class和interface

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...

    abstract class和interface有什么区别?

    ### abstract class和interface有什么区别? 在面向对象编程中,`abstract class` 和 `interface` 都是用来实现抽象化的工具,但它们之间存在着重要的差异。理解这些差异有助于开发者更有效地设计和实现软件系统。 ...

    interface&abstract class

    ### Interface与Abstract Class的区别及应用场景 #### 一、Interface与Abstract Class的概念理解 在面向对象编程语言中,如Java,接口(Interface)和抽象类(Abstract Class)是两种非常重要的概念,它们都被用来...

    Struct 、Class、Interface、Abstract区别与关系

    Struct 、Class、Interface、Abstract各个的特性、应用场景等对比

    java abstract class interface之间的区别介绍

    在Java编程语言中,抽象类(abstract class)和接口(interface)都是用于实现抽象化的重要工具,它们可以帮助程序员更好地组织代码,提高代码的可复用性和扩展性。尽管二者在功能上有一些相似之处,但在实际使用中...

    override abstract virtual interface比较

    Override 关键字用于重写父类中的虚拟方法,Abstract 关键字用于声明抽象类和抽象方法,Virtual 关键字用于声明虚拟方法,而 Interface 关键字用于声明接口。只有正确地使用这些关键字,才能编写出高质量的 C# 程序...

    java中abstractclass和Interface.doc

    - 结合`abstract class`和`interface`的优点,可以通过定义一个`interface`并在其下方定义一个实现该接口的`abstract class`来达到最佳效果。 - 这样既确保了接口的灵活性,又提供了抽象类的部分实现,方便后续的...

    [转]深入理解abstract class和interface

    在编程领域,`abstract class`(抽象类)和`interface`是两种重要的设计模式,它们在构建可扩展和模块化的软件系统中起着至关重要的作用。这篇文章将深入探讨这两个概念,以及它们在实际开发中的应用。 首先,让...

    Java程序开发中abstract 和 interface的区别详解

    在Java编程语言中,`abstract class`(抽象类)和`interface`都是用来定义抽象类的概念,它们在面向对象设计中扮演着重要的角色。抽象类主要用于表示一系列具有共同特征但又各自具有独特行为的具体类的抽象,而接口...

    static、final、abstract和interface使用总结

    在Java编程语言中,`static`、`final`、`abstract`和`interface`是四个非常重要的关键字,它们分别代表不同的特性,用于定义类、变量和方法的行为。下面是对这些关键字的详细解释: 1. **static(静态)** - **...

    PHP abstract与interface之间的区别

    在PHP编程语言中,`abstract`关键字和`interface`接口都是用于实现多态性和代码规范化的工具,但它们之间存在着显著的区别。这篇文章将深入探讨这两种概念,并解释它们各自的作用。 首先,我们来看`interface`接口...

    c#中的interface abstract与virtual介绍

    C#中的`interface`、`abstract`和`virtual`是面向对象编程中的关键概念,它们在定义类的行为和结构方面起着重要作用。 首先,`interface`是C#中的一种规范,它定义了一组方法签名,但不提供具体实现。这意味着任何...

    Java abstract class 与 interface对比

    在Java编程语言中,`abstract class`(抽象类)和`interface`是两种重要的机制,它们用于实现多态性和抽象性。虽然它们都可以用来定义抽象方法,但它们之间存在显著的差异,这些差异影响了开发者在设计软件时的选择...

    Java中的interface接口

    接口内的方法默认为public abstract类型,无需显式声明。 3. **实现接口**: 类可以通过`implements`关键字来实现一个或多个接口,例如`class ClassName implements InterfaceName { ... }`。每个接口中的抽象方法...

    Java中interface接口与abstractclas

    在Java编程语言中,`interface`接口和`abstract class`抽象类是两种重要的面向对象设计概念,它们都用于实现多态性,但有着显著的区别。理解这些差异对于编写可扩展和可维护的代码至关重要。 首先,接口是完全抽象...

    Python3之接口类(InterfaceClass)浅谈

    在Python3中,我们可以使用`abstractmethod`装饰器和`ABCMeta`元类来创建接口类。 一、接口类的定义与作用 接口类的作用在于规定子类必须实现哪些方法,以满足特定的协议或标准。它自身不包含任何实现,只定义了...

Global site tag (gtag.js) - Google Analytics