首页 > 其他分享 >接口和多态

接口和多态

时间:2023-09-21 18:02:33浏览次数:31  
标签:void 多态 接口 抽象 println 方法 public

1.接口就是多个类的公共规范

接口是一种引用数据类型,最重要的内容就是其中的:抽象方法

如何定义一个接口的格式:

public interface 接口名称{
}

备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class

如果是java7,那么接口中可以包含的内容有:1.常量 2.抽象方法

java8,还可额外包含有:默认方法,静态方法

java9.额外包含有:私有方法。

2.接口中抽象方法的定义:

 

1 /*在任何java版本中,接口都能定义抽象方法。
 2 格式:
 3 public abstract 返回值类型 方法名称(参数列表);
 4 
 5 注意事项:
 6 1.接口当中的抽象方法,修饰符必须是两个固定关键字,public abstract
 7 2.这两个关键字修饰符,可以选择型省略,
 8 */
 9 public interface Demo01Interface {
10     //以下四种都是抽象方法
11     public abstract void methodAbs1();
12     abstract  void methodAbs2();
13     public void methodAbs3();
14     void methodAbs4();
15 }

3.接口抽象方法的使用

1 public interface Demo01Interface {
 2     //以下四种都是抽象方法
 3     public abstract void methodAbs1();
 4     abstract  void methodAbs2();
 5     public void methodAbs3();
 6     void methodAbs4();
 7 
 8 
 9 
10 public class MyInterfaceAbstractImpl implements Demo01Interface{
11 
12     @Override
13     public void methodAbs1() {
14         System.out.println("这是第一个方法");
15     }
16 
17     @Override
18     public void methodAbs2() {
19         System.out.println("这是第二个方法");
20 
21     }
22 
23     @Override
24     public void methodAbs3() {
25         System.out.println("这是第三个方法");
26 
27     }
28 
29     @Override
30     public void methodAbs4() {
31         System.out.println("这是第四个方法");
32 
33     }
34 }
35 
36 
37 
38 接口的使用步骤:
39 1.接口不能直接使用,必须有一个“实现类”来“实现”该接口
40 格式:
41 public class 实现类名称 implements 接口名称{
42 
43 }
44 2.接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
45 实现:去掉abstract关键字,加上方法体大括号。
46 3.创建实现类的对象,进行使用
47 注意事项:如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己必须是抽象类。
48 */
49 public class DemoInterface {
50     public static void main(String[] args) {
51         //错误写法,不能直接new接口对象使用
52         //Demo01Interface demo = new Demo01Interface();
53         //创建实现类的对象使用
54         MyInterfaceAbstractImpl inter = new MyInterfaceAbstractImpl();
55         inter.methodAbs1();
56         inter.methodAbs2();
57         inter.methodAbs3();
58         inter.methodAbs4();
59 
60     }
61 }

4.接口的默认定义方法

1 public interface InterfaceDefault {
 2     //抽象方法
 3     public abstract void methodAbs();
 4     //新增加了一个抽象方法
 5    // public abstract void methodAbs2();
 6 
 7     public default void methodDefault(){
 8         System.out.println("这是新添加的默认方法");
 9     }
10 
11 }
12 
13 
14 
15 
16 public class MyInterfaceDefaultA implements InterfaceDefault{
17     @Override
18     public void methodAbs(){
19         System.out.println("实现了抽象方法,AAA");
20     }
21 
22     @Override
23     public void methodDefault(){
24         System.out.println("实现类A覆盖重写了接口的默认方法");
25     }
26 
27 }
28 
29 
30 public class MyInterfaceDefaultB implements InterfaceDefault{
31 
32     @Override
33     public void methodAbs() {
34         System.out.println("实现了抽象方法:BBB");
35     }
36 }
37 
38 
39 public class Demo02Interface {
40     public static void main(String[] args) {
41         //创建了实现类对象
42         MyInterfaceDefaultA m = new MyInterfaceDefaultA();
43         //调用抽象方法,实际运行的是右侧的实现类
44         m.methodAbs(); //实现了抽象方法,AAA
45 
46         //实现类A覆盖重写了接口的默认方法
47         m.methodDefault(); //实现类A覆盖重写了接口的默认方法
48         System.out.println("-----------------");
49 
50         MyInterfaceDefaultB m1 = new MyInterfaceDefaultB();
51         m1.methodAbs(); //实现了抽象方法:BBB
52         m1.methodDefault();//这是新添加的默认方法
53     }
54 }

 



标签:void,多态,接口,抽象,println,方法,public
From: https://blog.51cto.com/u_16082673/7555770

相关文章

  • PHP预定义接口之 ArrayAccess
    来源:http://www.shanhubei.com/archives/2754.htmlarrayAccess的作用是使得你的对象可以像数组一样可以被访问。应该说ArrayAccess在PHP5中才开始有的,PHP5中加入了很多新的特性,当然也使类的重载也加强了,PHP5中添加了一系列接口,这些接口和实现的Class统称为SPL。这个接口......
  • C模拟CPP的方法重写(override)和多态
    1.所谓override,就是子类中重新实现了父类中的某一方法(子类和父类的同一个方法的方法体不同)2.所谓多态,最显著的一个特点就是父类指针指向不同的子类对象时,运行同一个方法会有不同的行为3.C语言模拟继承时,父类对象必须是子类对象的第一个成员4.理解了C的父类结构体指针子类结......
  • Yii2使用modules模块开发Api接口的注意点
    如题:Yii2中使用modules开发Api接口一、新建modules目录``` -components -config -controllers -mail -models -modules//新增 -runtion -tests -traits -vargrant```二、在modules中新建模块目录``` -modules -vueadmin//注意模板目录名称都......
  • JDK8新特性之Lambda表达式和四大函数接口
    在Java8中,加入了Lambda(Lambdaexpression),在使用它以前我们先聊聊为什么要加入Lamdba,使用它对于编程上有什么好处 一、Lamdba的作用1.在我们需要把一些功能传递给某些方法时,在Java8以前,我们就需要去写匿名内部类。引入lambda表达式后,你可以在一个类中简便的定义参数和方法,替代大......
  • 淘宝订单信息获取接口API,淘宝打单发货接口
    从事电商软件开发的小伙伴,在日常开发任务中,经常会遇到一个需求,就是将淘宝店铺的订单,同步到自己的内部订单管理系统OMS中,进行淘宝打单发货操作。我介绍下如何将订单同步下来,供各位参考。(注意:所有电商平台目前能同步订单的接口要么就不让申请,要么就申请门槛和维护资质的成本很高,具体......
  • 对某个接口进行限流 以 Aop 注解的形式绑定接口 用redis实现
    简单的针对某个接口进行限流,如果需要整体限流的话还是建议在网关上面或者服务器上面动手Controller:@LimitRequest(count=1,time=60*1000*2)@PostMapping("limit")publicStringgetLimitResult(){return"ok";}Annotation:@Retention(R......
  • 国标视频云服务 EasyGBS视频存储平台如何正确调阅实时录像接口?
    视频监控平台EasyCVR是一个高度灵活、功能丰富的视频监控系统,其强大的拓展性和便捷的部署方式使其在众多场景中都能发挥出色的性能。EasyCVR平台支持多种主流标准协议,包括但不限于国标GB28181、RTSP/Onvif、RTMP等,这些协议为设备之间的互联互通提供了基础。 在接收到用户......
  • Restful API 接口测试工具 HTTP Client
    HTTPClient软件项目开发有很多RESTfulAPI接口需要运行来验证效果,所以急需一款高效的接口测试工具。可能大家用的比较多的是swagger或者postman,这2个确实不错,不过这里我给大家推荐一种更简单的接口测试工具。这款工具就是idea中的自带的:HTTPClient,这款工具特别好用,主......
  • Go语言实现接口IP限流,黑名单&白名单的实例,都可用!
    Go语言实现接口IP限流,黑名单&白名单的实例,都可用!原创 学习与分享 Go语言圈 2023-07-1808:30 发表于广东收录于合集#学Go语言哪些事儿221个MySQL大牛带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。45篇原创内容......
  • 最新SSL证书申请源码,支持API接口,支付在线
    最新SSL证书申请源码,支持API接口,支付在线目前测试还不需要授权,以后更新版就不知道了SSL证书保证网络安全的基本保障。向您介绍我们的在线生成SSL证书系统支持在线生成SSL证书系统,用户登录可在线申请SSL,后台对接ssl证书api接口www.httple.net源码截图: ......