`

抽象类和接口

    博客分类:
  • java
 
阅读更多


1、抽象类必须被继承,抽象方法必须被重写(如果不被继承以及抽象方法不被重写,那么类里面的一些功能就无法对外界实现)。抽象方法只需声明而不需要实现(也就是说声明一个抽象方法的时候不需要加大括号,无主体),具体的功能可以在子类的重写方法中进行实现(也就是说通过子类对抽象类中,所有的抽象方法的重写来实现抽象类中的功能)。

2、抽象类不能被new实例化(实例化没意义,因为抽象类里面的抽象方法没有方法体,没有具体的方法实现,即使调用了也没有意义),通过多态进行向上转型实例化它的子类。

3、如果类中包含抽象方法,那么类必须定义为抽象类,不论是否还包含其它一般方法抽象方法即使有返回类型也不需要用return

4、抽象类与普通类的区别:当设计一个新的抽象类时,那么这个抽象类一定是用来继承的;而普通类不是用来继承的。

***抽象的好处:强迫子类去做某些事(子类必须把抽象类中的所有抽象方法都重写)。

***不能和抽象类共用的关键字:private、final、static。

5、接口(interface):是抽象方法和常量值的定义的集合(本质上讲接口就是一个抽象类(是一个方法都是抽象的抽象类))

6、在接口里面定义一个方法就是抽象方法

7、接口中存放的内容就两个:抽象方法和变量,接口中的成员都是公用的(public)。

8、只要是接口(interface),它里面的成员都有固定的修饰符。public static final用来修饰变量的。public abstract 用来修饰抽象方法。如果你不加上话,系统会自动给加上。

9、接口的特点及应用:

  A接口是对外暴露的一种规则

  B是程序对外的一个功能扩展

  C接口的出现降低了程序的耦合性(事物的紧密联系程度)

  D接口的出现可以实现多继承(接口叫多实现)

***抽象类与接口的区别***:

a定义:抽象类是至少包含一个抽象方法的类,而接口是抽象方法和全局常量的集合。

b组成:抽象类中可以有构造方法、抽象方法、普通方法、常量、变量。接口是由常量和抽象方法组成。

c使用:子类继承抽象类(extends),子类实现接口(implements)

d关系:抽象类可以实现多个接口,接口不能继承抽象类,但允许继承多个接口(因为接口里面的方法没有主体)

e对象:都通过对象的多态产生实例化对象

f局限:抽象类有单继承的局限,接口没有此局限

g选择:如果抽象类和接口都可以使用的话,可以优先使用接口,这样可以避免单继承的局限

h特殊:一个抽象类中可以包含多个接口,一个接口也可以包含多个抽象类(当然这个抽象类必须是只含有抽象方法和常量)
分享到:
评论

相关推荐

    详细解析Java中抽象类和接口的区别

    ### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...

    基于Java抽象类和接口实现疯狂动物城

    本项目主要包括项目开发环境搭建、不同功能的类的设计、抽象类的设计、接口的设计、及其继承抽象类重写和接口实现类等具体功能的实现。 ●工程项目搭建与游戏初始化功能实现(2学时) ; ●动物城成员列表与动物信息...

    抽象类和接口 区别分析

    ### 抽象类和接口的区别分析 在面向对象编程中,抽象类与接口都是实现代码复用和提高软件模块化的重要工具。它们各自拥有独特的特性和应用场景,掌握这些概念对于编写高质量、可维护性强的代码至关重要。下面我们将...

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

    抽象类和接口实验报告

    c# 中抽象类和接口的学习

    在C#编程语言中,抽象类和接口是实现面向对象编程(OOP)中的多态性和代码重用的关键概念。本文将深入探讨这两个概念,并解释它们在C#中的使用方式和区别。 ### 抽象类 抽象类是一种特殊的类,它不能被实例化,其...

    Java中的类、抽象类和接口的区别和联系

    Java中的类、抽象类和接口的区别和联系

    C#中抽象类和接口的区别.txt

    在C#编程语言中,抽象类和接口都是用于实现面向对象编程中多态特性的关键概念。它们都旨在为其他类提供一种定义行为和特性的模板或规范,但它们之间存在着重要的区别。本文将详细探讨C#中的抽象类与接口之间的差异,...

    抽象类和接口 测试结果

    在编程世界中,抽象类和接口是面向对象设计的重要概念,它们都用于实现代码的抽象和多态性,但有着不同的使用场景和规则。这里我们将深入探讨这两种机制,并结合给出的"codePiece"代码片段来分析它们在实际应用中的...

    Java源代码:抽象类和接口

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,为其他类提供模板或行为指南。让我们深入探讨这两个概念及其在Java中的应用。 首先,我们来理解抽象类。在Java中,抽象类是一...

    介绍一下抽象类和接口的异同

    在编程世界中,抽象类和接口是两种非常重要的概念,它们在实现代码的组织和设计模式上发挥着关键作用。本文将深入探讨抽象类与接口的异同,并结合实际应用场景来帮助理解这两种机制。 首先,让我们从定义开始。抽象...

    Java抽象类和接口.ppt

    此书对于你学习Java抽象类和接口有非常大的帮助

    抽象类和接口的区别

    在Java中,可以通过两种形式来体现OOP(Object Oriented Programming,OOP,面向对象程序设计)的抽象:接口和抽象类。 这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    这里我们将详细讨论这些概念以及抽象类与接口之间的相同点和区别。 首先,让我们来看看抽象类(Abstract Class): 1. 抽象方法是只有声明没有实现的方法,可以视为没有方法体的虚方法。例如: ```csharp public ...

    抽象类和接口的PPT

    简单介绍了抽象类和接口

    Java中抽象类和接口的区别

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

Global site tag (gtag.js) - Google Analytics