`
sha1064616837
  • 浏览: 39897 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

接口与抽象类

阅读更多
--------------------------------
1.抽象类:abstract
  1.抽象类与普通类的区别:
    不能创建实例。普通类不能包含抽象方法,而抽象类中可以包含抽象方法(注意是可以,也就是说一个抽象类中可以没有一个抽象方法)。
  2.区分抽象方法与空方法:
    public abstract void test();---抽象方法
    public void test(){}--空方法
  3.不存在抽象变量,抽象属性,抽象构造器:
    abstract不能修饰属性,变量,构造器;抽象类中可以存在构造器。
  4.private和abstract不能同时修饰方法:
    abstract修饰的方法必须被子类重写才有意义。而private修饰的方法,子类无访问权限。
  5.final和abstract不能同时修饰方法:
    abstract修饰的方法必须被子类重写,而final修饰的方法不能被重写。
  6.static和abstract不能同时修饰方法:
    static修饰方法时,表示该方法属于当前类,可以通过类名.方法名调用,如果该方法定义为抽象的,则直接用类.方法调用该方法时等于调用了一个没有方法体的方法(肯定不行)。
  7.但是抽象类中是可以定义静态方法,final方法,private方法的。
-----------------------------------------
2.接口:interface
  1.接口中的所有方法都为抽象方法。默认都为public abstract修饰。
  2.接口中所有的属性:默认为public static final修饰。所以所有属性必须为常量。
  3.接口中定义的内部类和枚举类:默认为public static修饰。
  4.接口是一种特殊的抽象类:
    所以接口不能有实例,方法不能用static,final,private修饰。
  5.接口中不能包含构造器:
    构造器是一种特殊的方法,而且不能为抽象(在抽象类中以说明),但是接口中的所有方法必须为抽象方法。
  6.正因为接口中所有方法必需抽象,所以接口中不能包含初始化代码块。
-----------------------------
3.抽象类与接口的区别:
  1.设计的目的上:
    接口体现的是一种规范一种标准,是多个程序之间的通信标准。接口中定义了可以调用那些方法,如可调用。  面向接口编程,层次清晰,降低多个模块之间的耦合性,提高系统的可扩展性和可维护性。
    抽象类体现的是一种封装,一种模板式设计思想。一般作为多个子类的抽象父类,可以被当成一个系统实现过程中的中间产品,新的子类在此基础上扩展。
  2.用法上:
    1.接口只能包含抽象方法;而抽象类既可包含抽象方法,也可以包含普通方法。
    2.接口中不能定义静态方法;而抽象类中可以定义静态的普通方法。
    3.接口中只能定义静态常量属性;而抽象类中可以定义普通属性。
    4.接口中不能包含构造器;而抽象类中可以包含构造器。但是抽象类中的构造器并不是用于创建实例,而是用于被子类调用来完成属于抽象类的初始化操作。
    5.接口中不能包含初始化代码块;而抽象类中可以包含。
    6.一个类最多继承一个抽象类,但可以实现多个接口。
    7.接口可以extends接口,但不能implements接口;而抽象类可以extends抽象类和implements接口。都不用像普通类一样去实现抽象方法。
分享到:
评论

相关推荐

    接口与抽象类区别

    接口与抽象类区别 在软件开发中,接口和抽象类是两个常用的概念,但它们之间的区别却让许多人感到困惑。那么,什么是抽象类和接口?它们之间有什么区别?下面,我们就来详细地探讨这个问题。 一、抽象类 抽象类是...

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

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

    Java语言的接口与抽象类

    4. 绑定关系:抽象类与子类有从属绑定,接口与实现类之间没有这种绑定。 5. 动态绑定:两者都支持运行时多态,即父类引用指向子类对象。 在使用原则方面: 1. 抽象类:通常用于一组相关子类共享代码,减少代码冗余...

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    接口与抽象类区别PPT优秀资料.ppt

    3. 抽象类与接口的选择 在选择抽象类定义方式时,需要考虑问题领域的本质理解和设计意图是否正确、合理。abstract class 和 interface 之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,但是...

    接口与抽象类的入门小程序(C# VS2010 )

    本项目"接口与抽象类的入门小程序"是针对C#开发者,使用Visual Studio 2010编译环境的一个实践教程,旨在帮助初学者理解和掌握这两种关键的类组织结构。 接口(Interface)在C#中是一种完全抽象的类型,它定义了一...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计...通过这样的练习,你可以更好地理解和掌握Java中的抽象类与接口,以及它们在实际开发中的应用。在实践中不断尝试和调试,将有助于深化对这两个概念的理解。

    java高级类操作 接口与抽象类的操作

    Java中的高级类操作涉及到抽象类和接口的使用。抽象类是一种不能被实例化的类,它主要用来被其他类继承,定义共有的属性和方法。接口则是一种完全抽象的类型,用于定义一组方法签名,实现多继承的效果。 首先,让...

    特征之接口与抽象类PPT学习教案.pptx

    特征之接口与抽象类PPT学习教案.pptx

    接口与抽象类的主要区别

    在编程领域,接口和抽象类是面向对象设计中两种重要的机制,它们用于定义类的行为和结构。虽然两者在某些方面有相似之处,但它们在概念、实现方式和用途上存在显著差异。 首先,抽象类是一种特殊的类,它不能被实例...

    C#接口与抽象类的详解

    在编程语言中,C#提供了两种机制来实现多态性和代码重用,即抽象类和接口。虽然两者在某些方面有相似之处,但它们在设计理念和使用场景上有显著的差异。 首先,我们来深入理解抽象类。抽象类是一种特殊的类,它不能...

    接口与抽象类的区别以及一些java基础

    // 接口中的方法只能通过对象调用,不能通过类名调用 }}在Java中,接口和抽象类都是用于实现多态性的重要工具,但它们之间存在显著的区别: 1. **接口(Interface)**: - 接口是一个完全抽象的类型,它只包含...

    接口和抽象类的区别(面向对象)

    接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...

    抽象类与接口的区别

    ### 抽象类与接口的区别 #### 一、理解抽象类与接口的基本概念 在面向对象编程中,抽象类和接口都是重要的概念,用于描述共有的特性或行为,但它们在实现方式和用途上有所不同。 **抽象类**: - **定义**:抽象类...

    2.接口与抽象类的介绍他们之间的异同点及接口是项目分层与618大促接口的实现.docx

    本文将对 Java 编程语言中的接口和抽象类进行详细的介绍,讨论它们之间的异同点以及在项目分层和618大促接口实现中的应用。 一、包和访问权限 在 Java 中,包是组织类的基本单位,而访问权限则是控制类成员的可...

    接口和抽象类

    ### 接口与抽象类:理解与应用 在面向对象编程中,接口和抽象类都是实现多态性和代码复用的重要工具,但它们各有特点,适用于不同的场景。本文旨在深入探讨接口与抽象类的区别,以及如何根据具体需求选择合适的工具...

Global site tag (gtag.js) - Google Analytics