java中的抽象类和接口定义与用法详解

目录
  • 一、抽象类
    • 1.什么叫抽象类?
    • 2.抽象类的特点:
    • 3.成员特点:
  • 二、接口
    • 1.接口是什么?
    • 2.接口的特点
    • 3.接口的组成成员
    • 4.类与抽象的关系:
    • 5.抽象类与接口的区别:

一、抽象类

1.什么叫抽象类?

例如在生活中我们都把狗和猫归为动物着一类中,但当只说动物时,我们是不知道是猫还是狗还是其他的。所以动物就是所谓的抽象类,猫和狗则是具体的类了。因此在Java中,一个没有方法体的方法应该定义为抽象类,而类中有抽象方法,则必须为抽象类。

2.抽象类的特点:

  • 抽象类与抽象方法必须用abstract关键字进行修饰。
  • 抽象类不一定会有抽象方法,而有抽象方法的类一定是抽象类。
  • 抽象类不能实例化,若需实例化,参照多态的形式,通过子类来进行实例化。
  • 继承了抽象类的子类,则需要重写抽象类里面的所有抽象方法,要么就是抽象类才行。

3.成员特点:

  • 成员变量:可以是变量或者常量。
  • 构造方法:有构造方法,但是不能实例化,则需要通过多态子类来进行;其中用处是为子类访问父类来进行数据初始化。
  • 成员方法:可以是抽象类:限定 子类必须完成的某些行为;也可以为非抽象类,可以提高代码的复用性。

二、接口

1.接口是什么?

接口是一种公共的规范标准,是表示一个类所需要的附加条件,所以只需要符合规范标准,都可以运用。Java中的接口主要体现于对行为的抽象。

2.接口的特点

  • 需要用关键字interface来进行修饰。
  • 类的实现接口需要用implements来表示
  • 接口不能实例化,若要实例化,则参照多态的形式来进行实例化,称为接口多态。因此多态的形式主要有:具体类的多态,抽象多态,接口多态。
  • 接口的实现类:要么重写接口里面的抽象方法,要么是抽象类。

3.接口的组成成员

  • 1.成员变量:只能是常量,默认由'public static final‘来进行修饰。
  • 2,构造方法:接口没有构造方法,因为接口主要是对于行为进行抽象,没有具体的存在。
  • 注意事项:一个类没有父类则默认继承Object类。
  • 3.成员方法:

抽象方法:接口默认的方法为抽象方法。默认为public static abstract来进行修饰。

默认方法:默认方法是在部分实现类需要添加的方法时所用到的方法,是需要在接口里面用defaul修饰,实现类里可以不用重写,但重写时是需要删除default。

静态方法:静态方法是只能在接口中去添加,不能被实现类去调用,只能被接口名调用并被static修饰。

私有方法:私有方法主要是在接口里面进行使用,有private关键字进行修饰,通过将相同的代码段写在私有方法里面,提高了代码的复用性和简便性,静态的私有方法只能用静态来进行修饰,非静态的可以有非静态和静态方法都能修饰。

4.类与抽象的关系:

5.抽象类与接口的区别:

抽象类主要是对于事物的抽象,接口主要是对于行为的抽象。

到此这篇关于java中的抽象类和接口定义与用法详解的文章就介绍到这了,更多相关Java 抽象类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java面向对象之抽象类,接口的那些事

    目录 一.抽象类 1.抽象类概述 1.1 为什么要有抽象类?(抽象类的作用) 1.2 抽象类的定义 2. 抽象类特点 3.抽象类成员特点 4.抽象类案例 二.接口 1.接口概述 2.接口特点 3.接口成员特点 4.接口案例 5.类和接口的关系 1)类和接口之间的关系 2)接口和接口之间的关系 6.抽象类和接口的区别 总结 一.抽象类 1.抽象类概述 1.1 为什么要有抽象类?(抽象类的作用) 我先举一个例子:假设我们有一个父类动物类(Animal),还有继承自动物类的两个子类猫类(Cat)和狗类

  • Java多态性抽象类与接口细致详解

    目录 1.多态性 1.1 向上转型 1.2 向下转型 2.抽象类 2.1 抽象类的基本概念 3.接口 3.1 接口的基本概念 3.2 接口的使用限制 3.3 使用接口定义标准 3.4 抽象类与接口的区别 1.多态性 多态性是面向对象的最后一个特征,它本身主要分为两个方面: ​ 方法的多态性:重载与覆写 ​ 1 重载:同一个方法名称,根据参数类型以及个数完成不同功能: ​ 2 覆写:通一个方法,根据操作的子类不同,所完成的功能也不同. ​ 对象的多态性:父子类对象的转换. ​ 1 向上转型:子类对

  • Java编程接口详细

    目录 一.抽象类和抽象方法 二.接口 三.Java中的多重继承 四.通过继承来扩展接口 1.组合接口时的名字冲突 五.适配接口 六.接口中的域 七.嵌套接口 1.类中的接口 2.接口中的接口 八.接口与工厂 一.抽象类和抽象方法 抽象:从具体事物抽出.概括出它们共同的方面.本质属性与关系等,而将个别的.非本质的方面.属性与关系舍弃,这种思维过程,称为抽象. 这句话概括了抽象的概念,而在Java中,你可以只给出方法的定义不去实现方法的具体事物,由子类去根据具体需求来具体实现. 抽象类除了包含抽象方

  • 详解Java抽象类与普通类的区别

    浅谈抽象类 在面向对象概念中,所有的对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描述对象的.如果一个类中没有足够多的信息来描述一个具体的对象,这样的类就是抽象类. 看到这里可能还是觉得有些难以理解,举个例子说明一下:说到动物你会想到什么?猫,狗,鸡鸭鹅?当然这些都可以.那么动物这两个字,你能确定一个具体的对象吗?显然不能.甚至更严格意义上讲,说到猫你会想到什么?橘猫,短美- 毕竟: 一千个人心中有一千个哈姆雷喵. 所以我们在设计中,动物类可以设计成为抽象类,而某一种特定的物种可以采

  • Java语法之 Java 的多态、抽象类和接口

    目录 一.多态 1. 向上转型 2. 动态绑定 3. 方法重写 4. 向下转型 5. 关键字 super 6. 在构造方法中调用重写方法(坑) 7. 理解多态 8. 小结 二.抽象类 1. 概念 2. 注意事项 3. 抽象类的意义 3. 抽象类的作用 三.接口 1. 语法规则 2. 实现多个接口 3. 接口的继承 4. Comparable 接口 4. Comparator 接口 5. Cloneable 接口和深拷贝 上一篇文章:Java 基础语法之解析 Java 的包和继承 今天这章主要介绍

  • java应用开发之Mybatis通过Mapper代理自定义接口的实现

    如何实现?主要分为以下两步骤 1.通过 Mapper 代理实现⾃定义接口 2.编写与方法相对应的 Mapper.xml 1.自定义接口AccountRepository package repository; import entity.Account; import java.util.List; public interface AccountRepository { public int save(Account account); public int update(Account ac

  • java中的抽象类和接口定义与用法详解

    目录 一.抽象类 1.什么叫抽象类? 2.抽象类的特点: 3.成员特点: 二.接口 1.接口是什么? 2.接口的特点 3.接口的组成成员 4.类与抽象的关系: 5.抽象类与接口的区别: 一.抽象类 1.什么叫抽象类? 例如在生活中我们都把狗和猫归为动物着一类中,但当只说动物时,我们是不知道是猫还是狗还是其他的.所以动物就是所谓的抽象类,猫和狗则是具体的类了.因此在Java中,一个没有方法体的方法应该定义为抽象类,而类中有抽象方法,则必须为抽象类. 2.抽象类的特点: 抽象类与抽象方法必须用abs

  • java抽象类和接口定义与用法详解

    本文实例讲述了java抽象类和接口定义与用法.分享给大家供大家参考,具体如下: 抽象类 抽象类定义 只约定类所具有的抽象行为,没有具体实现相应行为. 语法格式 abstract class 类名{ 常量; 变量; 构造(); 访问修饰符abstract 返回类型 方法名;//抽象方法 普通方法; 静态方法(); } 应用场景 1.不适合创建对象. 2.有些功能没有必要实现,有不同的子类实现. 3.每次使用的都是子类的对象. 4.为所有的子类提供了一个模板,所有的子类都是在此模板的基础之上添加和修

  • Java中的构造方法this、super的用法详解

    1.构造方法 定义:与类同名没有返回值的方法称为构造方法: public class test1 { private String name; private int age; public test1(){ } } 上面的test1()是默认构造方法,即使没有定义java虚拟机在运行的时候也会自动生成, 当然如果定义了重载的构造方法便不会自动生成: 构造方法的作用有两点1.通过构造方法建立一个对象:2.通过构造方法可以快速的赋初值: public class Main { public sta

  • Java实现的对称加密算法AES定义与用法详解

    本文实例讲述了Java实现的对称加密算法AES定义与用法.分享给大家供大家参考,具体如下: 一 简介 1.AES是目前使用最多的对称加密算法. 2.AES的优势之一是至今尚未被破解. 3.AES通常用于移动通信系统加密以及基于SSH协议(SSH Client.SecrueCRT)的软件. 二 特点 1.高级的 2.DES替代者 三 AES的参数说明 四 代码实现 package com.imooc.security.aes; import java.security.Key; import ja

  • Java中synchronized关键字修饰方法同步的用法详解

    Java的最基本的同步方式,即使用synchronized关键字来控制一个方法的并发访问. 每一个用synchronized关键字声明的方法都是临界区.在Java中,同一个对象的临界区,在同一时间只有一个允许被访问. 静态方法则有不同的行为.用synchronized关键字声明的静态方法,同时只能够被一个执行线程访问,但是其他线程可以访问这个对象的非静态的synchronized方法.必须非常谨慎这一点,因为两个线程可以同时访问一个对象的两个不同的synchronized方法,即其中一个是静态s

  • Java中比较抽象类与接口的异同

    目录 一.抽象类 (一)概念 (二)抽象类和抽象方法 (三)使用抽象类的意义 二.接口 (一)概念 (二)语法 三.比较抽象类与接口 Q: 为什么有了抽象类还要接口?  Q: 如何确定在什么情况下应该使用接口,什么情况下应该使用类呢? 一.抽象类 (一)概念       在继承的层次结构中,每个新的子类都使类变得更加明确和具体.如果从一个子类向父类追溯,类就会变得更通用.更加不明确.类的设计应该确保父类包含它的子类的共同特征.有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例.这样的类

  • Java开发中synchronized的定义及用法详解

    概念 是利用锁的机制来实现同步的. 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问.互斥性我们也往往称为操作的原子性. 可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作从而引起不一致. 用法 修饰静态方法: //同步静态方法 public synchronized

  • Java中的引用和动态代理的实现详解

    我们知道,动态代理(这里指JDK的动态代理)与静态代理的区别在于,其真实的代理类是动态生成的.但具体是怎么生成,生成的代理类包含了哪些内容,以什么形式存在,它为什么一定要以接口为基础? 如果去看动态代理的源代码(java.lang.reflect.Proxy),会发现其原理很简单(真正二进制类文件的生成是在本地方法中完成,源代码中没有),但其中用到了一个缓冲类java.lang.reflect.WeakCache<ClassLoader,Class<?>[],Class<?>

  • Java设计模式之策略模式定义与用法详解

    本文实例讲述了Java策略模式定义与用法.分享给大家供大家参考,具体如下: 一. 定义: 定义一系列算法,把他们一个一个封装起来,并且使他们可以相互替换. 二. 优点: (1)上下文(Context)和具体策略(ConcreteStrategy)是松耦合关系,因此上下文只需要知道他要使用某一个实现  Strategy接口类的实例,但不需要知道是哪个类. (2)策略模式满足开闭原则,当增加新的具体类时,不需要修改上下文类的代码,上下文即可以引用新的具体策略的实例. 三. 实例: 下面就通过一个问题

随机推荐