`
miaoge
  • 浏览: 109354 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类

抽象类与接口总结

阅读更多

(抽象)abstract抽象的,定义框架不去实现,可以修饰类和方法

abstract修饰类:会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。

abstract修饰方法:会使这个方法变成抽象方法,也就是只有声明而没有实现,实现部分以";"代替,需要子类继承实现。抽象方法代表了某种标准,定义标准,定义功能,在子类中去实现功能(子类继承了父类并需要给出从父类继承的抽象方法的实现)。方法一时间想不到怎么被实现,或有意要子类去实现而定义某种标准,这个方法可以被定义为抽象。

 

    注意:

有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

 

    接口(interface)

接口的定义:接口从本质上说是一种特殊的抽象类。

关键字interface

在接口中,所有的方法为公开、抽象的方法:public abstract

在接口中,所有的属性都是公开、静态的常量:public static final

接口与接口之间可以多继承,用extends,多个之间用逗号隔开。

接口中没有构造方法,不能用“new 接口名”来实例化一个接口,但可以声明一个接口。

 

接口的实现:关键字implements

一个类实现一个接口必须实现接口中所有的方法,否则其为抽象类,并且在实现类中的方法要加上public(不能省略)

类中的默认修饰符:default

接口中的默认修饰符:public

一个类除了继承另一个类外(只能继承一个类),还可以实现多个接口(接口之间用逗号分隔)

 

接口的作用

间接实现多继承:用接口来实现多继承并不会增加类关系的复杂度。因为接口不是类,与类不在一个层次上,是在类的基础上进行再次抽象。

接口可以抽象出次要类型,分出主、次关系类型,符合看世界的一般方法。

接口隔离,与封装性有关。一个对象都有多个方面,可以只展示其中几个方面,其他的都隐藏。因此可以看为“更高层次的封装”,把 一个大接口做成若干个小接口。

通过接口制定标准(最重要的作用)

接口:制定标准。

接口的调用者:使用标准。

接口的实现类:实现标准。

解耦合作用:把使用标准和实现标准分开,使得标准的制定者和实现者解除偶合关系,具有极强的可移植性

例:sun公司提供一套访问数据库的接口(标准),java程序员访问数据库时针对数据库接口编程。接口由各个数据库厂商负责实现。

     

接口编程的原则

尽量针对接口编程(能用接口就尽量用接口)

接口隔离原则(用若干个小接口取代一个大接口)

 

注意:

接口中没有构造器,也没有main方法

 

abstract classinterface的区别:

   声明方法的存在而不去实现它的类叫虚拟类(abstract class).它用于创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract class的实例.但是可以声明一个abstract class变量,将其指向其具体子类的一个实例.不能有抽象构造函数或抽象静态方法.Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口.接口是一个更纯的抽象类.

 

 

接口是否可继承接口抽象类是否可实现(implements)接口抽象类是否可继承实体类(concrete class)?

    接口可以继承接口,不能实现接口,不能继承类;抽象类可以实现(implements)接口,抽象类可继承实体类。

 

 

分享到:
评论

相关推荐

    Java抽象类与接口实验报告

    Java抽象类与接口实验报告

    java抽象类与接口区别

    ### Java抽象类与接口的区别 #### 一、引言 在Java编程中,抽象类(Abstract Class)与接口(Interface)都是实现抽象的关键工具。它们各自有着独特的优势和适用场景,掌握这两者的区别有助于开发者更好地设计系统...

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    抽象类和接口实验报告.doc

    抽象类和接口实验报告

    抽象类与接口的区别

    总结而言,选择抽象类还是接口取决于具体的应用场景和需求。在设计系统架构时,理解并正确使用这两种工具是非常重要的。抽象类和接口的合理运用能够帮助我们更好地组织代码,提高代码的复用性和可维护性。

    C#抽象类与接口方法

    【C#抽象类与接口方法】在C#编程语言中,抽象类和接口是两种用于实现多态性和封装的关键概念,它们允许我们设计灵活、可扩展的代码结构。 抽象类是一种特殊的类,它不能被实例化,而是作为其他类的基类使用。抽象类...

    JAVA 继承基本类、抽象类、接口区别与联系

    ### JAVA继承基本类、抽象类、接口的区别与联系 #### 一、概述 在Java语言中,类(Class)的设计是面向对象编程的核心之一。Java提供了三种方式来扩展类的功能:基本类、抽象类和接口。这三者之间既有相似之处,也...

    Java源代码:抽象类和接口

    总结来说,抽象类和接口都是用于实现多态性的工具,但它们有明显的区别: 1. 抽象类可以包含非抽象方法和字段,而接口仅包含常量和抽象方法。 2. 一个类可以继承一个抽象类,但可以实现多个接口。 3. 抽象类提供了一...

    java中接口与抽象类的详细分析与比较

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键...通过阅读"java中接口与抽象类的详细分析与比较.doc"文档,你将获得更深入的洞察和实践指导,进一步提升你的Java编程能力。

    抽象类和接口

    ### 抽象类与接口详解 #### 一、引言 在Java编程语言中,抽象类(abstract class)和接口(interface)是两种非常重要的概念,它们为开发者提供了定义抽象行为的能力,从而使得代码更加灵活且易于扩展。尽管这两者...

    抽象类和接口的详细区别和联系

    在面向对象编程中,抽象类与接口是两种非常重要的概念,它们都是实现多态性的方式之一,但在使用场景、语法特性和设计哲学等方面存在明显的不同。本篇文章将深入探讨这两者的区别与联系,并通过具体的示例来帮助读者...

    Java实验7抽象类和接口.pdf

    抽象类和接口 在 Java 编程语言中,抽象类和接口是两种基本的编程概念,它们都是定义类的蓝图,但它们之间有着本质的区别。 一、抽象类 抽象类是一种特殊的类,它不能被实例化,必须被继承。抽象类提供了一种定义...

    java 抽象类及接口

    总结一下,Java中的抽象类和接口都是实现多态和代码复用的关键工具。抽象类可以包含部分实现,提供一个基本结构,而接口则强制实现特定的方法,强调行为的一致性。选择使用抽象类还是接口通常取决于设计需求,如是否...

    抽象类和接口 java

    ### 抽象类与接口在Java中的应用与实践 #### 实验概述 本次实验主要聚焦于Java编程语言中抽象类和接口的概念理解与实际运用,旨在深入掌握抽象类与抽象方法的定义,以及接口的定义与实现方法。通过具体实例,如...

    Java中抽象类的学习总结

    接口与抽象类在使用上有一些不同之处: - **接口**: 接口是一种特殊的抽象类,其中只包含常量和方法的定义,而不包含任何变量和方法的具体实现。 - **实现与继承**: 类可以通过`implements`关键字实现接口,而通过`...

    PHP抽象类与接口的区别实例详解

    总结抽象类和接口的区别: 1. 继承与实现:抽象类使用关键字extends来继承,而接口使用关键字implements来实现。 2. 方法和属性:抽象类可以包含变量(属性)、常量和方法,接口只能定义常量和方法,不能定义变量。...

    面向对象与Java实现(抽象类、接口

    面向对象与Java实现:抽象类、接口的深度解析 面向对象程序设计(OOP)是现代软件工程中的核心概念,它通过封装、继承、多态等特性来构建灵活、可复用和可扩展的代码结构。Java作为一门广泛使用的面向对象语言,提供...

    抽象类及接口的实例及测试

    总结来说,这个项目旨在通过实际的源代码和测试案例,以及UML图,帮助开发者掌握抽象类和接口的基本概念,理解它们在软件设计中的作用,以及如何在MyEclipse这样的开发工具中进行实践。这将有助于提升编程能力,使...

    抽象类、接口、内部类、异常

    总结,抽象类、接口、内部类和异常是Java面向对象编程的重要组成部分,它们提供了不同层次的抽象和组织代码的方式,同时异常处理确保了程序在遇到问题时能够优雅地恢复或结束。理解并熟练运用这些概念对于编写健壮、...

Global site tag (gtag.js) - Google Analytics