首页 > 其他分享 >抽象与接口

抽象与接口

时间:2023-04-13 19:22:05浏览次数:54  
标签:函数 子类 接口 抽象 抽象类 父类

 

上节课回顾、

B是A中得一员 才可以继承A
A extends B
子类和父类一样得 函数,我们成为函数得重写Overrid
函数分两部分
第一 声明部分
第二 函数得实验体


抽象 abstract
当子类不需要父类中的实验体,可以将父类中的实验体删掉
例子:大括号内为实验体

public abstract void study();

abstract:抽象的,可以是修饰函数或则 类,
抽象类:abstract 修饰的类
抽象函数:abstract 修饰的函数

抽象函数的声明:修饰符 abstract 返回值类型 函数名 (形参);

注意:
1.抽象函数必须位于抽象类中,抽象类中不一定有抽象函数,
2.抽象类 是有构造器的,但是不能创建自己类型的对象,(实例化)
3.抽象类 可以强迫子类做事情:
(子类继承抽象函数,要么自己成为抽象函数,要么(实现该功能)重写父类函数)

ctrl + o 重写

抽象类与普通类的区别
1.都有构造器,但是抽象类不能创建自己类型的对象,
2.抽象类中,既有抽象函数,又有普通函数(包含静态函数);
普通类 中,只能有普通函数(包含静态函数);
3.抽象类 可以强迫子类做事情;

问题:抽象关键字 abstract 不能和那些关键字一起使用?
1.private private abstract void study();
私有后 子类不能继承了 所以冲突
2.static 父类没初始化 ,static 就存在了
3.final final 函数 不能重写
final 修饰类 为最终类 (最终的类 没有子类)不能被继承

注意点:
可以根据父的构造器,构建子类的构造器

引用数据
1.宿主
2.类
3.接口


接口
接口关键字 interface 不是class
接口 /interface (接口就是规范)、
举例 : USB 接口 规范
接口是用来实现的,由类进行实现的,类实现接口后,会具备继承的特性,
接口是父类,实现类是子类

关系:
类与类:单继承 ,但是支持多层继承
类与接口:类来实现接口,一个类在继承另一个类的同时,可以实现多个接口,
接口与接口之间的关系 : 多继承,支撑多层函数

问题?什么时候使用继承?什么时候使用实现?

只有当B 是A 中的一员时候,B 才能继承A

当B 像A一样 具备某个功能时,使用实现

接口定义:
当一个类都是抽象函数,这个类可以定义为接口
interface
接口 创建取名字 :IA
实现类 IA impl 子类要实现父类所有抽象函数
public class A implements IA(){

}


enum 枚举
Annoation 注解

public interface IA{
double PI = 3.14;(成员常量)
double PAI =3.0;(成员常量)
public abstract void m1(); 抽象函数
int m2(String num); 抽象函数
}
接口的成员
JKD8.0 之前的成员 :

1. 常量(成员常量)
2.抽象函数
JKD8.0 之后的成员 :

1.默认级函数(可以带大括号了)
default void m3(){
sout
}

2.静态函数
static Number m4(int num){
return num;
}

(接口名等同于类名,用IA.m4 调用)
(类与类之间的继承,是可以继承静态函数的)
(接口之间的实现,子类无法获取父类中的静态函数)

A继承B : A extends B
ctrl + o 重写

implements 实现

模板法:

当程序的一部分是确定的,另一部分不确定,而确定部分在使用不确定部分,
此时,将不确定的部分,改为抽象,交给子类完成,
模板法是线程的设计原理

模板法
自己总结:先建立一个abstract抽象类 ,再写一个获取时间的函数,
此函数用final来修饰,不可被继承,
要测试的程序写成抽象函数,
因为抽象函数可被子类继承,子类extends继承后不变抽象函数,
选择实现父类抽象函数,对父类抽象函数进行重写Override,
这样这个子类在测试时,可以被new,
测试时跑父类的final修饰函数就可以。

标签:函数,子类,接口,抽象,抽象类,父类
From: https://www.cnblogs.com/ningbaoer/p/17316080.html

相关文章

  • java.io.Serializable(序列化)接口
     一、概念Java对象序列化的意思就是将对象的状态转化成字节流,以后可以通过这些值再生成相同状态的对象。对象序列化是对象持久化的一种实现方法,它是将对象的属性和方法转化为一种序列化的形式用于存储和传输。反序列化就是根据这些保存的信息重建对象的过程。序......
  • mvc替换t对应的Servle相关接口
      开启注解驱动:    ......
  • 百度翻译接口的获取与使用方法
      本文介绍获取百度翻译官方接口及其密钥,并将接口授权给自己或他人开发的软件或插件的方法。  首先,打开百度翻译开放平台网站,首先点击右上角进行登录。  登录后,选择“管理控制台”。  首次进入“管理控制台”,需要首先注册为百度翻译的开发者身份。在这里,我们选择“个......
  • 关于使用硬件接口卡及CANoe软件的常见问题和解决方案
    CANoe是德国Vector公司出的一款总线开发环境,是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统开发过程。硬件接口卡可以提供移动和固定的CAN,LIN,Ethernet等网络的开发、仿真、测试及维护,具有高性能、容易使用、适应性强的硬件接口,用来搭配CANoe的使用,拓展......
  • 在idea运行maven项目 将mybatis的接口与接口对应xml文件放在同一个包下,启动时无法找到
    在项目的在pom文件中引入如下<resources><resource><directory>src/main/java</directory><excludes><exclude>**/*.java</exclude></excludes></resource>......
  • 淘宝/天猫按分类搜索直播接口 API 返回值说明
    前言自从2016年直播行业的爆发以来,直播平台、观众数量都呈井喷式发展,我国网络直播行业呈现井喷式发展。网络直播利用互联网实现了信息的实时共享,开启了全新的社交网络交互方式,被称之为拥有千亿市场的新兴产业。同时在国家文化的政策支持下,网络基础设施和移动宽带的加速普及、视频......
  • 批量上传GPT知识库,前端elementui的upload上传组件,后端Golang的上传接口实现
    为了实现批量上传GPT的知识库并且功能,那么这个上传组件就必不可少,需要能把文档上传到服务器中。前端部分,我是采用的cdn引入的形式,引入的elmentui。该框架是有上传组件的,可以参考我的用法:action部分就是上传接口,其他三个是上传之前的处理,上传成功和失败后的回调函数......
  • chatgpt接口
    (1)使用curl发送http请求curlhttps://api.openai.com/v1/chat/completions\-H"Content-Type:application/json"\-H"Authorization:Bearer$OPENAI_API_KEY"\-d'{"model":"gpt-3.5-turbo","......
  • 读取Excel表格数据做接口自动化测试并回写执行结果(待完善更新)
     待测试接口:代码脚本:控制台日志:执行结果:后续待完善:Excel表格增加请求方式(常用方式POST/GET/PUT)列;根据Excel表格内容(请求头Header、请求参数Parameter、请求体Body)发起请求;根据Excel表格内容(期望响应码、期望响应内容)与实际响应内容校验;考虑更多应用场景,增加判断......
  • 读取Excel表格数据做接口自动化测试并回写执行结果(待完善更新)11
    读取Excel表格数据做接口自动化测试并回写执行结果(待完善)待测试接口:代码脚本:控制台日志:执行结果:后续待完善:Excel表格增加请求方式(常用方式POST/GET/PUT)列;根据Excel表格内容(请求头Header、请求参数Parameter、请求体Body)发起请求;根据Excel表格内容(期望响应码、期望响应内容)与实际响......