首页 > 编程语言 >【Java】什么是接口回调、对比上转型对象、代码案例

【Java】什么是接口回调、对比上转型对象、代码案例

时间:2022-11-01 21:11:41浏览次数:39  
标签:Java area double 接口 案例 Circle 回调 public


接口回调介绍

接口回调和上转型是设计模式的解耦核心,可以说几乎所有的模式都是建立在这两者的应用之上的。

接口回调其本质与上转型是一样的,不同的是:接口回调是用接口句柄来得到并调用实现这个接口的子类的引用;而上转型则是用父类句柄来得到并调用继承此父类的子类的引用。 (参考自百度百科)

代码案例

interface Shape {
public static final double pi = 3.14;//public static final可省略
public abstract double area();//public abstract可省略
}

interface another{
//只用来做多继承思想的说明
}

class Circle implements Shape,another{//为多继承思想的体现
double radius;//新增变量
public Circle(double r) {//新增方法
radius = r;
}
public double area() {//实现接口的方法
return (pi*radius*radius);
//调用接口中的pi常量(可理解为继承过来的)
}
}
public class Exampleke9 {
public static void main(String[] args) {
Circle cir = new Circle(2.0);
System.out.println("Area of cir = "+cir.area());
Shape shape;//声明接口变量
shape = new Circle(2.0);//接口变量中存放对象的引用
System.out.println("Area of cir = "+shape.area());
//shape.area()为接口回调,若多个类implements一个接口,接口回调可以体现多态性
}
}



标签:Java,area,double,接口,案例,Circle,回调,public
From: https://blog.51cto.com/u_15856491/5814978

相关文章

  • Java一次性设置窗口中所有组件的字体
    声明:该方法参考自​​codeday​​,作者codeday;下面结合此方法逻辑写的代码为原创。下面只为类中部分必要代码://所用方法publicvoidchangeFont(Componentcomponent,Fo......
  • JavaScript全局变量、局部变量的表示方法与例子
    全局变量:有两种表示方法:1.在函数外定义的变量;2.在函数内但没有使用var关键字声明的变量。表示法1例子:varcarName="Volvo";//此处可调用carName变量functionmyFun......
  • Java中DriverManager.getConnection(uri, user, password)返回null的原因之一
    解决方法:检查MySQL、JDBC-MySQL数据库驱动版本是否对应。例子:(1)环境:mysql-8.0.20-winx64+mysql-connector-java-5.1.40+适用于mysql-5.7.15-winx64的Java代码(2)环境:mysq......
  • 【笔记11】Javascript - 原型、原型链
    【笔记11】Javascript-原型、原型链原型原型是function对象的一个属性,它定义了构造函数选出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原......
  • Java实现四种【查找算法】+图解+完整代码+分析
    参考书目:《大话数据结构》文章目录​​一、哨兵法​​​​二、折半/二分查找​​​​三、插值查找​​​​四、斐波那契查找​​一、哨兵法1.思路图解:2.代码实现:public......
  • Java生成Excel自定义导出合并(多级表头)
    一、糊涂工具包1.导入依赖(注:导入的依赖可能会和poi依赖包冲突,导致项目启动不了,我这里poi-ooxml依赖包用的4.1.2版本,可以解决冲突问题)<!--糊涂工具包--><dependency><g......
  • day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键
    JDBC配置connector的jar包1.项目下新建lib文件夹2.将mysql-connector-java-版本号.jar复制到lib目录下3.右键项目名,选择Properties选项4.点击AddJARS...,选中刚复制的j......
  • Java多线程(7):JUC(上)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。......
  • 如何用 JavaScript 编写你的第一个单元测试
    测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输......
  • Java学习笔记day2--循环结构
    **循环结构包括四个部分:初始化部分循环条件部分循环体部分迭代部分1>for循环for(初始化部分;循环条件部分;迭代条件......