首页 > 编程语言 >Java基础之面向对象——抽象类、接口、枚举

Java基础之面向对象——抽象类、接口、枚举

时间:2023-02-03 16:33:58浏览次数:52  
标签:Java 实现 子类 接口 枚举 抽象 抽象类

抽象类

      越是处于顶层定义的类,实际上可以进一步地进行抽象。抽象类里可以有抽象方法(也可以没有)。抽象类完全由子类来实现,父类中不需要提供实现。例如,对于该父类一定有子类实现该父类的抽象方法

 

 

 子类实现抽象方法

 

 抽象类由于不是具体的类定义(它是类的抽象)可能会存在某些方法没有实现,因此无法直接通过new关键字来直接创建对象,要使用抽象类,只能去创建它的子类对象。抽象类一般只做继承使用,但抽象类也可以作为子类

 

 不过值得注意的是,抽象类的访问权限不能是private,因为抽象方法一定要由子类实现,不然抽象类就没意义了

 

枚举

      Java中的枚举是一种类型,顾名思义:就是一个一个列举出来。所以它一般都是表示一个有限的集合类型,它是一种类型。通过枚举可以用使用定义好的状态。例如,定义一个枚举类

 

 使用枚举类也很方便,就像使用普通类型那样

 

 枚举是普通类,也可以给枚举添加独有的成员方法

 

 这样就可以按照中文打印了

 

 接口

       接口甚至比抽象类还抽象,它只代表某个确切的功能!也就是只包含方法的定义,甚至都不是一个类!接口一般只代表某些功能的抽象,接口包含了一些列方法的定义,类可以实现这个接口,表示类支持接口代表的功能(类似于一个插件,只能作为一个附属功能加在主体上,同时具体实现还需要由主体来实现)。实际上接口的目标就是将类所具有某些的行为抽象出来。比如说,对于人类的不同子类,学生和老师来说,他们都具有学习这个能力,既然都有,那么就可以将学习这个能力,抽象成接口来进行使用,只要是实现这个接口的类,都有学习的能力。例如,

 

 实现接口中的抽象方法

 

 接口不同于继承,一个类可以实现多个接口

 

 接口和抽象类一样不能创建,但是可以将接口实现类的对象以接口的形式去使用

 

 接口同样支持向下转型

 

 从Java8开始,接口中可以存在方法的默认实现,如果方法在接口中存在默认实现,那么实现类中不强制要求进行实现

 

 接口不同于类,接口中不允许存在成员变量和成员方法,但是可以存在静态变量和静态方法

 

 跟普通的类一样,可以直接通过接口名.的方式使用静态内容,例如

 

 接口是可以继承其他接口的,而且接口没有继承数量限制,接口支持多继承

 

标签:Java,实现,子类,接口,枚举,抽象,抽象类
From: https://www.cnblogs.com/yunque01/p/17078742.html

相关文章

  • JAVA 图片压缩
    packageimage;importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;/***功能描述:......
  • Java多线程并发03—线程上下文,线程调度
    多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢?操作系统的设计者巧妙地利......
  • Java多线程并发04—线程池的合理使用
    为什么使用线程池?线程池做的工作主要是控制运行的线程的数量。线程池的种类Java中常用的线程池主要有四种:newCachedThreadPool、newFixedThreadPool、newScheduledThreadPo......
  • 跳表java实现(可直接运行)
    跳表类packagecom.yjz.example.跳表;/***@author:yuanjinzhong*@date:2023/1/283:00PM*@description:*跳表类,参考项目:https://github.com/wangzhe......
  • javascript的正则表达式
    什么是正则表达式?正则表达式是构成搜索模式(searchpattern)的字符序列。当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。正则表达式可以是单字符,或者更复杂......
  • java list<对象>根据某个字段分组
    前言仅供学习参考,不保证性能问题其中的实体类改成你自己的实体类代码/***根据某个字段进行分组,分组后遍历方法*<p>*Map<String,List<MyDoma......
  • Java lombok包中的常用注解,便捷化开发POJO类
    lombok包中的一些常用注解如何使用Lombok?Lombok提供注解方式来提高代码的简洁性,常用注解有:   @Data   @Setter@Getter   @NonNull   @Synchronized ......
  • 利用引用传递一次遍历构造菜单树(附java&go demo)
    目录原理讲解javademoGodemo优点原理讲解利用引用传递,当儿子的儿子变动的时候,自己的儿子的儿子也变动(取地址)javademopackagecom.huiyuan.algorithm;importjava.......
  • Java IO流文件
    JavaIO流文件创建文件使用File类进行创建文件操作,创建该对象包含三种构造方法newFile(Stringpathname);//根据路径+文件名创建一个File对象newFile(Fileparent......
  • JavaScript-超大文件上传-如何上传文件-大文件上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{......