首页 > 其他分享 >抽象类和接口

抽象类和接口

时间:2023-02-23 21:49:01浏览次数:41  
标签:子类 接口 普通 抽象 抽象类 方法

抽象类

  • 代表一个抽象概念的类;
  • 规定整个类家族都必须具备的属性和行为。

一、抽象类性质

  • 类名前加修饰符abstract;
  • 可包含常规类能包含的任何成员,包括非抽象方法;
  • 也可包含抽象方法:用abstract修饰,只有方法原型,没有方法的实现(没有方法体);
  • 没有具体实例对象的类,不能使用new方法进行实例化,只能用作超类;
  • 只有当子类实现了抽象超类中的所有抽象方法,子类才不是抽象类,才能产生实例;
  • 如果子类中仍有抽象方法未实现,则子类也只能是抽象类。

二、抽象方法的优点

  • 隐藏具体的细节信息,所有的子类使用的都是相同的方法原型,其中包含了调用该方法时需要了解的全部信息;
  • 强迫子类完成指定的行为,规定所有子类的“标准”行为。

 三、抽象类和普通类的区别?

  1. 抽象类不能被实例化 普通类可以
  2. 抽象类要被 abstract修饰 普通类不能
  3. 抽象类可以有抽象方法 普通类一定不能有
  4. 抽象类被继承时 子类必须重写全部的抽象方法或者将这个子类改为抽象类,而普通类没有要求。

四、抽象方法和普通方法有什么区别?

  1. 抽象方法没有方法体 普通方法一定要有方法体 
  2. 抽象方法一定要有abstract修饰 普通方法一定不能有 
  3. 抽象方法只能在抽象类中,普通方法既可以在抽象类中也可以在普通类中。

五、使用抽象类的优势是什么?

  • 抽象类提供了部分实现,使子类可以重用部分抽象类的代码 (提高代码的复用性)。
  • 抽象类为其子类提供了共同的接口。
  • 抽象类中的抽象方法在子类中重写,保证了子类还具有自身的独特性。

  • 通过抽象类指向其子类的对象,可以实现多态。

接口

一、实现多个接口的语法是什么?

  • 修饰符   class    类名   [extends   父类名]   implements 接口1,接口2,接口3 ,....{}

二、接口性质

  • 子类通过implements来实现接口中的规范。
  • 接口不能创建实例,但是可用于声明引用变量类型。
  • 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
  • JDK1.8(不含8)之前,接口中只能包含静态常量(public static final String name="OK";)、抽象方法(public abstract void ccc();),不能有普通属性、构造方法、普通方法。
  • JDK1.8(含8)后,接口中包含普通的静态方法、默认方法(default void ccc(){})

    

 

标签:子类,接口,普通,抽象,抽象类,方法
From: https://www.cnblogs.com/curry3000/p/17149445.html

相关文章

  • RESETful API接口设计规范
    开发工作中,我们有时需要提供API接口给客户端或者第三方使用,那么如何构建一个能让使用者快速理解的API是一项重要的工作。如何我们在设计API时就严格遵守一些规范,那么在后面......
  • Java集合Set接口详解——含源码分析
    前言前几天我们看了​​Java集合List接口详解——含源码分析​​,今天我们看一个数据一个数据存储的另一个接口——Set。Set前面我们说List最大的特点是:​​有序,不唯一​​,而......
  • lazada商品详情数据接口采集代码展示
    业务背景 在很多行业,比如商品采集、刊登、直播、数据分析、竞价等行业都需要用到相关的销量接口,但是官方一般又没有开放这些接口,怎么办?解决方案(点击获取key和secret)目前......
  • ONES 对话 Eolink :数字化企业连接世界的第一接口
    EolinkEolink的创业方向是一次无心插柳。在Eolink创办之前,创始人刘昊臻先后参与了技术外包、在线医疗、O2O电商等创业项目,但是觉得不太符合自己的期望。2015年底......
  • python+playwright 学习-12.Mock 接口返回,模拟各种异常场景
    前言web自动化主要测前端UI的功能,有很多异常的场景,我们很难造真实的场景去触发,比如服务器异常时候,前端的提示语。这时候就可以使用mock功能,模拟接口的返回,测试前端的......
  • java 面向接口编程
        Advertisement.javapublicinterfaceAdvertisement{//接口publicvoidshowAdvertisement();publicStringgetCorpName();}Advertis......
  • 集合类再探:不可变类的好处,Collector接口详解,使用内部迭代
    集合类再探注:本文使用的pom依赖见文末。......
  • PowerShell 调用接口插入模拟数据
       functioninsertUser($i=2){$str="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"#字符串#echo$str.ToCharArray()......
  • 1688商品列表数据接口采集代码展示
    1688商品列表接口背景在很多行业,比如商品采集、刊登、直播、数据分析等行业都需要用到相关的商品详情接口,但是官方一般又没有开放这些接口,怎么办?解决方案(​​点击获取key......
  • pytorch反向接口暴露
    主目录下CMakeList.txt嵌套Caffe目录Caffe目录包含aten,***等目录Caffe同时调用Codegen.cmake执行动态生成代码,生成动态变量所以aten目录下可以调用动态变量并构建,......