`
mmdev
  • 浏览: 13218888 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

java什么时候用抽象类,什么时候用接口

 
阅读更多

关于什么时候用抽象类,什么时候用接口,我在这里做一下总结。

首先看下面的例子:

abstract  class AbstractStudent{

     abstract void study();

     void sleep(){

           System.out.println("sleep");

      }

      void smoke(){

              System.out.println("抽烟");

       }

}

//所有的Student被创建都会抽烟,是不是很搞笑?

class Student  extends  AbstractStudent{

        Student Demo stu = new Student();

         ...

}


上面这个学生抽象类中有三个方法,学习,睡觉,抽烟。我们知道任何一个学生都要学习,都要睡觉,但是不是

每个学生都要抽烟呢?这显然是不合理的。难道说创建一个学生对象,就一定要强加给他抽烟的方法?就像一个

学生来了,就一定要他会抽烟?女生也不放过?哈哈!这显然是很荒唐的事情。

于是我们做如下调整:

abstract  class AbstractStudent{

      abstract void study(); 

       void sleep(){ 

               System.out.println("sleep"); 

        }

}

interface Smoking{

      void smoke();

}



//普通的学生,继承AbstractStudent,有学习、睡觉的方法,不抽烟

class Student extends AbstractStudent{



}



//抽烟的学生,除了继承AbstractStudent中的方法,还会抽烟

class SmokeStudent extends AbstractStudent implements Smoking{

   

 }



这样,就把抽烟的同学和不抽烟的同学分离开了。 现在你感觉到了抽象类与接口的不同点了吗?

总结:抽象类中通常放的是类种事物(对象)共有的属性和方法,于是它的子类继承它的时候

就自然有了其所有属性和方法,当有些方法是某种子类特有的时,就应该将这个方法分离出来,

以附加的形式(implements)添加进去。

分享到:
评论

相关推荐

    java抽象类与接口实例java抽象类与接口实例

    java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...

    Java 接口和抽象类

    Java 接口和抽象类 Java 编程语言提供了两种机制来实现面向对象编程的多态性:接口和抽象类。这两种机制使得 Java 应用开发具有灵活性和敏捷性。 抽象类 抽象类是一种特殊的类,它不能被实例化,不能被直接使用,...

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    ### Java利用接口和抽象类改写求圆的面积和梯形的面积 #### 深入理解Java的接口和抽象类 在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被...

    Java抽象类与接口实验报告

    Java抽象类与接口实验报告

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

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键概念,它们各自有特定的用途和优缺点。本文将深入探讨这两种概念,帮助你理解它们之间的区别以及如何在实际开发中选择使用...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,供其他类去实现或继承。在这个练习中,我们将深入理解这两种机制,并通过实际的代码示例和注释来加深理解。 首先,让我们讨论...

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

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

    Java源代码:抽象类和接口

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

    Java中抽象类和接口的区别

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

    11.java接口和抽象类的区别.zip

    11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别....

    java抽象类与接口区别

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

    java 抽象类与接口的区别

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们都用于实现多态性,但各自具有不同的特点和应用场景。了解并熟练掌握它们的区别对于编写高质量的Java代码至关重要。 首先,抽象类是一种不能被...

    Java语言的接口与抽象类

    Java语言的接口与抽象类是面向对象编程中的关键概念,它们在设计模式和代码组织中起着重要作用。这里我们将深入探讨这两个概念,并分析它们的异同。 首先,接口(Interface)是Java中的一种特殊类型,它通过使用`...

    10.java接口和抽象类的相似性.zip

    10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和...

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

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

    Java抽象类和抽象方法

    在深入探讨Java抽象类与抽象方法之前,我们首先需理解其基本概念以及它们在面向对象编程中的作用。Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一...

    浅析Java抽象类和接口的比较

    总的来说,抽象类和接口在Java中各有其独特的作用,正确选择和组合使用它们可以提高代码的灵活性、可扩展性和可维护性。在实际开发中,应根据问题领域的需求、设计意图和面向对象原则来做出决策。

    Java抽象类和接口.ppt

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

    JAVA设计模式(抽象类与适配器模式)

    今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...

    Java接口和Java抽象类

    ### Java接口和Java抽象类详解 #### 一、引言 在面向对象编程语言Java中,接口(Interface)和抽象类(Abstract Class)是实现多态性和代码复用的重要手段。它们都允许开发者定义行为规范而不需要具体实现细节,但...

Global site tag (gtag.js) - Google Analytics