`
yxwang0615
  • 浏览: 559140 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

接口不能实例化

    博客分类:
  • java
 
阅读更多

抽象类,通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性。

 

InterfaceA IA = new InterfaceA();

编译器报错:Cannot instantiate the type TA 指明接口只能被声明,不能被实例化。

 

 

简单工厂设计模式

设定一个Class名称是AClass,在面向对象编程中,一般一个Class都会继承一个接口,设定AClass的接口为AInterface,那么生成AClass的对象方法如下:

 

                                    AInterface  a = new AClass();

改写成下列方式:
AInterface  a = Afactory.create();    //代码2

Afactory的create方法封装了具体创建细节。
解耦了创建过程和使用过程,系统可扩展性增强,稳定性增强。
Afactory的create方法代码:
    public static AInterface create(){
         ……
        return new AClass();
   }

上面代码2这一行是使用Afactory的create方法来生成AInterface实例。

 

 

由于是初学者,之前一直对上面这句很困惑,前几天看到一个用抽象类实现接口的案例,为什么不直接用抽象类的实例的方法?

 

网上的解答:

 

接口是强制性的,它的所有方法都要实现。

但是抽象类不是,
比如说一个接口,你只用到其中的一两个方法,可是如果直接实现接口需要实现里面的五个方法,这时候你可以先让抽象类实现接口,然后你的类继承接口,就不需要都实现接口的方法了
而且接口的抽象层次要更高,是一种契约,抽象类是提供了很多的方法,给你用,没有强制性。

 

抽象类和接口比起来,有一个好处,就是某些函数可以实现具体的方法,而并不一定是声明抽象的方法,而接口只能声明抽象方法,所以用一个抽象类来实现某个接口可以实现一些通用的方法,而这些具体实现的方法里还可以调用抽象方法,所以减少了子类中的重复代码

 

 

分享到:
评论

相关推荐

    怎样使一个class不能被实例化

    ### 如何使一个类不能被实例化 在面向对象编程中,有时我们希望定义一个类作为其他类的基础,但它本身不应该被创建实例。这种类型的类通常被称为“抽象基类”或“接口”。本文将详细介绍如何在C++中实现这一目标。 ...

    Spring实例化Bean顺序

    这个接口的方法调用时机晚于`@PostConstruct`注解的方法,因此实例化顺序会有所不同。 6. **@PostConstruct注解**:标记在方法上的`@PostConstruct`注解表示该方法应在Bean完全初始化后立即调用。Spring将这些方法...

    抽象类和接口1

    接口不能实例化,也没有构造方法。接口中的方法默认是`public abstract`的,属性默认是`public static final`的。接口的目的是定义一种契约,规定实现该接口的类必须提供某些特定的功能。接口可以多继承,一个类可以...

    java实验3 练习接口

    由于接口不能实例化,我们通常通过类来实现接口,然后创建类的实例。然而,Java 8引入了匿名内部类和Lambda表达式,可以简化接口的实现,尤其是对于只包含单个方法的接口(函数式接口)。 7. **函数式接口** 函数...

    C# 实例化接口对象的方法

    接口实例化可以看作是一对多的关系,因为一个接口可以有多个类实现,而每个类可以有多个实例。而C++的函数指针则是一对一的关系,一个函数指针只能指向一个特定的函数。 总的来说,C#中的接口实例化是面向对象编程...

    Java接口(interface)的概念及使用-Java教

    3. **接口与对象的关系**:接口不能实例化,但可以通过实现接口的类创建对象,通过对象调用接口中的方法。 **接口在设计模式中的应用:** 1. **策略模式**:接口作为策略的定义,允许在运行时选择不同的策略实现。 ...

    java实例化对象的过程

    例如,如果`MyClass`继承自另一个类或实现了一个接口,那么在实例化`MyClass`时,也会涉及父类的构造器调用和接口的实现。 此外,Java还提供了匿名内部类,工厂方法,单例模式等多种实例化方式。匿名内部类允许我们...

    基于http四种提交方式的接口自动化实例

    使用python语言,基于http四种提交方式的接口自动化实例

    Java实例化一个抽象类对象的方法教程

    由于抽象类自身不能被实例化,这意味着你不能使用`new`关键字直接创建一个抽象类的对象。然而,尽管不能直接实例化,抽象类在特定情况下依然可以间接地创建对象。以下将详细介绍如何在Java中处理抽象类实例化的问题...

    Java SE编程入门教程 java接口(共21页).pptx

    接口不能实例化,但可以被类实现。 类实现接口的语法如下: ```java public class ClassName [extends ParentClass] [implements Interface1, Interface2, ...] { // 类体 // 实现接口的方法 } ``` 当一个类实现...

    c#接口详细介绍及实例

    接口的一个重要特点是,它们不能被实例化,只能通过实现接口的类或结构实例来使用接口的成员。此外,接口可以多继承,即一个接口可以从多个其他接口继承,这样可以组合多个接口的功能: ```csharp interface ...

    Java相关知识点的学习(第八篇)

    1. **接口不能实例化**:由于接口包含了抽象方法,它本质上是一个抽象类,因此不能直接创建接口的实例。要使用接口,需要通过实现接口的类来进行实例化。在Java中,实现接口使用`implements`关键字。 2. **接口可以...

    java中的接口能够被实例化吗

    2. **匿名内部类与接口实例化:** 当我们想要在一个地方快速地实现接口,而不需要定义一个新的类时,可以使用匿名内部类。如下所示: ```java Runnable r = new Runnable() { @Override public void run() { /...

    DELPHI接口技术开发实例解析

    接口在软件工程中扮演着桥梁的角色,定义了一组方法,但不提供具体的实现。这种设计模式使得代码更加模块化,提高了复用性和可扩展性。下面将详细解析DELPHI接口技术的开发实例,帮助你深入理解和应用这一技术。 1....

    java的部分基础知识

    - **接口不能实例化**:由于接口不包含任何可执行的代码,因此不能创建接口的实例。实现接口的职责落在了类身上。 - **实现接口**:类通过`implements`关键字来实现接口,必须实现接口中所有的抽象方法。例如: `...

    C# ashx接口实现 实例

    本文将深入探讨如何使用C#来实现ASHX接口,并结合提供的文件目录结构进行实例解析。 首先,`JieKou`文件夹中的内容很可能是服务器端的接口实现。ASHX接口是基于.NET Framework的HTTP服务组件,它不需要完整的ASP...

    精品资料(2021-2022年收藏)面向对象技术Java期末复习试卷三.doc

    接口不能实例化,即不能创建接口的对象,选项D正确。接口用于定义行为规范,类通过实现接口来继承接口中的所有抽象方法。实现接口的类必须提供这些方法的实现,即所有的接口方法都必须被实现,选项C错误。接口引用...

    JAVA期末复习资料1 (2).docx

    21. **接口的实例**:接口不能实例化,但可以定义接口变量并将其引用赋值为实现接口的类的实例。 22. **嵌套类**:Java允许嵌套类的定义,包括内部类和局部类。 23. **接口中的方法**:接口中定义的方法默认是抽象...

    JAVA期末复习资料.docx

    21. **接口实例**:接口不能实例化,不能定义常量,但可以被类实现或被接口继承。 22. **嵌套类**:Java允许在类内定义其他类,称为内部类或嵌套类。 23. **接口中的方法**:接口中的所有方法默认都是抽象的,不...

    金税接口调用实例

    1. 实例化`TaxCardXClass`对象。 2. 调用`Initialize`方法,设置接口参数,如税务登记号、证书路径等。 3. 调用`OpenInvoice`方法,创建一个新的发票对象。 4. 设置发票信息,如购买方、销售方、金额等。 5. 调用`...

Global site tag (gtag.js) - Google Analytics