首页 > 编程语言 >java抽象类和接口

java抽象类和接口

时间:2023-04-04 14:44:48浏览次数:39  
标签:java void 接口 public 抽象类 方法 abstract

abstract

由abstract关键字修饰的类称为抽象类,可以将某些类共有的行为抽象出来,形成约束,提高开发效率。

//抽象类
public abstract class Action{
  //抽象方法,只有方法名字,没有方法的实现
  public  abstract void doSth();
}
  1. 抽象类不可以通过new关键字创建实例
  2. 抽象类中可以有普通方法
  3. 抽象方法必须在抽象类中
  4. 抽象类可以有构造方法,但只在子类创建实例时调用

interface

使用interface 创建 的类称为接口。
在普通类中只有具体实现;抽象类中,具体实现和规范(抽象方法)都有;而在接口中只有规范,没有具体实现,将约束和实现分离。
接口中定义的属性默认都被final修饰的静态属性,且访问限制为public
接口中定义的方法默认是抽象的,且访问限制为public

interface UserService{
  //public 和 final static是多余的
  public final static int num = 1001;
  //public 和 abstract是多余的,在interface中,不需要额外声明访问限制和抽象类,默认都是public和abtract
  public abstract void run(String name);
  
interface TimerService{
  void add(int t);
  //这不是普通的方法,这实际上是为该方法定义了默认行为,该方法可以被正常重写,访问限制也默认是public。
  //实现该接口的类可以选择不重写该方法,可以直接调用
  default void saySth(Stirng words){
    System.out.println("Saying "+words);
  }
} 

接口需要有实现类,一个类想要实现一个接口,需要通过implement关键字。一旦实现了某个接口,就必须实现接口中的方法。一个类可以同时实现多个接口。

class UserServiceImpl implements UserService,TimerSerice{
  //UserServiceImpl类实现了两个接口,就必须同时实现这两个接口中的方法
  public void run(String name){
    System.out.println(name);
  }
  public void run(int t){
  	//该方法没有被实现,但可以直接调用
  	saySth("Hello");
    System.out.println(t);
  }
}

标签:java,void,接口,public,抽象类,方法,abstract
From: https://www.cnblogs.com/hiibird/p/17286127.html

相关文章

  • 使用JAVA实现布隆过滤器
    什么是布隆过滤器布隆过滤器是一种内存友好的数据结构,它可以高效地判断一个元素是否存在于一个集合中,以及大幅减少磁盘/数据库等IO操作。与哈希表和树等数据结构不同,它可以实现非常高的查找速度和存储效率,适用于需要快速并且高效地处理大数据集的场景。布隆过滤器原理布隆过滤......
  • java xxljob 根据参数运行业务
    配置定时任务不启动,手动执行根据传入的参数完成既定的业务 /** *自定义增删除平台酒体数据 *参数:startDate,endDate[yyyy-MM-dd) * *@return{@link*@return:com.xxl.job.core.biz.model.ReturnT<java.lang.String>} *@author:xxx *@date2023/3/12 **......
  • 深入理解 Java 中 SPI 机制
    vivo互联网技术微信公众号 作者:姜柱SPI(ServiceProviderInterface),是JDK内置的一种服务提供发现机制,本文由浅入深地介绍了JavaSPI机制。一、简介SPI(ServiceProviderInterface),是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如j......
  • 为什么 JavaScript 中 0.1 0.2 不等于 0.3 ?
    vivo互联网技术微信公众号 作者:刘洋在js中进行数学的运算时,会出现0.1+0.2=0.300000000000000004的结果,一开始认为是浮点数的二进制存储导致的精度问题,但这似乎不能很好的解释为什么在同样的存储方式下0.3+0.4=0.7可以得到正确的结果。本文主要通过浮点数的二进制存储及运算,和......
  • 淘宝关键词搜索分析商品价格走势,商品列表接口
    淘宝API接口就是第三方软件公司,通过开放平台接入淘宝数据,并进行再开发,将功能封装打包成函数,客户只需要传入参数,接收返回值就可以实现具体功能。   淘宝关键词搜索分析价格销量接口商品价格走势(商品列表接口,分类ID采集精准商品数据接口)接口代码对接流程:taobao.item_searc......
  • Kotlin 协程真的比 Java 线程更高效吗?
    vivo互联网技术微信公众号 作者:吴越网上几乎全部介绍Kotlin的文章都会说Kotlin的协程是多么的高效,比线程性能好很多,然而事情的真相真是如此么?协程的概念本身并不新鲜,使用C++加上内嵌汇编,一个基本的协程模型50行代码之内就可以完全搞出来。早在2013年国内就有团队开源了号称支持......
  • CSDN粘贴图片自动上传到服务器(Java版)
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • selenium Java基础一
      1、下载相应的浏览器驱动包//设置环境变量SystemsetProperty("webdriver.firefox.marionete","D:\\geckodriver.exe");//初始化driverWebDriver driver=newFirefoxDriver();/请求地址driver.get("http://www.baidu.com"); 2、定位元素By.tagName()   ......
  • 155.最小栈 Java
    155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素......
  • java lambda List 查找 anyMatch() allMatch() noneMatch()
    packagelambda.list;importcn.hutool.core.util.ObjectUtil;importlombok.extern.slf4j.Slf4j;importorg.junit.Test;importpojo.Dome;importjava.util.ArrayList;importjava.util.List;/***@Author:xxx*@date2021/5/14**/@Slf4jpublicclassSe......