`

抽象类和接口

 
阅读更多

      今天复习下抽象类和接口。做点重要的笔记

1、抽象类

--------实际上,抽象类就是比普通类多了一个抽象方法而已。

(1) 抽象类是包含抽象方法的类称为抽象类,抽象方法是只声明而未实现的方法,抽象类可必须有抽象方法,可包含具体方法。

(2)所有的抽象方法和抽象类都必须使用abstract关键字进行声明。

(3)抽象类不能直接进行实例化操作,但可以声明,其目的在于扩展。

(4)抽象类继承的时候可以不必实现父类的所有抽象方法,但第一个具体子类必须实现抽象类的全部方法。

(5)抽象类不能含final关键字。

(6)抽象类中允许有构造方法,但构造方法是不能直接调用的,是交给子类调用的,子类对象的实例化,永远先调用父类的构造函数,抽象类中的属性要初始化,则肯定还是依赖构造方法的。

(7)抽象类的方法必须由具体子类实现,所以抽象方法不能是private类型,另外abstact和sychronied不能混用。

 

2、接口

 --------接口是类能够做什么的合约,但它没指定类操作的具体实现。

(1)接口是一个特殊的类,在java中接口由抽象方法和全局常量组成。接口的定义不允许有具体方法和变量。常量中public、static、final可以任意组合。

(2)接口中的抽象方法和全局变量的标志可以省略,在具体操作中可以简化,但抽象类中的方法却不可以。

(3)一个类只能继承一个父类,但一个类可同时实现多个接口。使用接口完成多继承的能力。

(4)一个类既要实现接口又要继承抽象类,则必须按如下的形式完成:

class 子类 extends 抽象类 implements 接口A,接口B,。。{}

(5)一个抽象类可以实现多个接口,但一个接口不能继承一个抽象类。抽象类在继承接口的时候可以不必设计接口;一个接口虽然不可以继承一个抽象类,但一个接口却可以同时继承多个接口。

(6)类只能扩展一个类(没有多重继承),但它能设计很多类。接口能扩展一个或多个接口,但接口不能扩展类或设计一个类或接口。

3、对象的多态性

多态性是面向对象的重要特征。

方法重载和方法覆写实际上属于多态性的一种体现,真正的多态性还包括对象多态性的概念。

对象多态性主要是指子类和父类对象的相互转换关系。

(1)向上转型:父类 父类对象=子类实例 ----->自动完成

(2)向下转型:子类 子类对象 =(子类)父类实例 ———>强制完成

      从对象多态性的概念看,子类为父类实例化是一个比较容易的操作,因为可以发生自动的向上转型关系,调用的方法永远是被子类覆写过的方法。因此,可以通过对象多态性为抽象类实例化,接口也可以通过对象的多态性完成实例化。

      抽象类本身最大的用处在于定义模版操作,而接口最大的作用在于定义标准。

4、抽象类和接口的区别 

 

 抽象类和接口如此相似,在使用时我们优先使用接口,因为它可以避免单一继承。

一个抽象类可以包含一个接口,反转,一个接口也可以包含一个抽象类。

 

 

 

  • 大小: 101.3 KB
分享到:
评论

相关推荐

    详细解析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