`
anrynlee
  • 浏览: 13531 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
  • zczh3: N多年前 已经很多人讨论N遍:JAVA 与 C 只存在 传值, ...
    传引用

接口回调

    博客分类:
  • J2SE
阅读更多
关于接口回调
接口回调实多态的另一种体现。接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,称为接口回调。不同的类在使用同一接口时,可能具有不同的功能体现,即接口的方法体不必相同,因此接口回调可能产生不同的行为。
下面是简单的接口回调:
package com.demo;

public class Demo1 {

	public static float getSquare(Square s) {
		return s.getSquare() ;
	}
	
	public static void main(String[] args) { 
		Rectangle r = new Rectangle(3, 4) ;
		Circle c = new Circle(2) ;
		
		float f1 = getSquare(r) ;
		float f2 = getSquare(c) ;
		
		System.out.println("长方形的面积:"+f1) ;
		System.out.println("圆形的面积:"+f2) ;
	}
}

interface Square {
	static final float PI = 3.14f ;
	public float getSquare() ;
}

class Rectangle implements Square {
    int height ;
	int length ;
	
	Rectangle(int height, int length) {
		this.height = height ;
		this.length = length ;
	}
	@Override
	public float getSquare() {

		return (height*length);
	}
}
class Circle implements Square {
	int r ;
	
	Circle(int r) {
		this.r = r ;
	}
	
	@Override
	public float getSquare() {
		return PI*r*r ;
	}
}


实际上用下面的代码也可以实现这样的功能,只不过是用类来实现的,并不是接口
原则上用接口会方便些!
package com.demo;

public class Demo2 {

	public static float getSquare(Square s) {
		return s.getSquare() ;
	}
	
	public static void main(String[] args) { 
		Rectangle r = new Rectangle(3, 4) ;
		Circle c = new Circle(2) ;
		
		float f1 = getSquare(r) ;
		float f2 = getSquare(c) ;
		
		System.out.println("长方形的面积:"+f1) ;
		System.out.println("圆形的面积:"+f2) ;
	}
}

class Square {
	static final float PI = 3.14f ;
	public float getSquare() {
		return 0 ;
	}
}

class Rectangle extends Square {
    int height ;
	int length ;
	
	Rectangle(int height, int length) {
		this.height = height ;
		this.length = length ;
	}
	@Override
	public float getSquare() {

		return (height*length);
	}
}
class Circle extends Square {
	int r ;
	
	Circle(int r) {
		this.r = r ;
	}
	
	@Override
	public float getSquare() {
		return PI*r*r ;
	}
}


两个程序只是稍微一点点不一样,下面的这个是多态的方式。



分享到:
评论

相关推荐

    android接口回调详解、简单例子+复杂例子

    在Android开发中,接口回调是一种常见的通信机制,用于在组件之间传递信息,特别是在异步操作中,如网络请求、文件读写等。接口回调能够帮助我们处理这些操作的结果,使得程序更加灵活和响应式。本篇文章将深入讲解...

    接口回调Demo

    在Android开发中,接口回调(Interface Callback)是一种重要的设计模式,它主要用于组件间的通信,特别是在处理异步操作时。这个“接口回调Demo”应该是一个示例项目,演示了如何使用接口来传递AsyncTask下载的数据...

    android接口回调

    在Android开发中,接口回调是一种常见的通信机制,用于在不同组件之间传递信息,尤其是在异步操作完成后更新UI或执行其他后续操作时。本篇将详细阐述Android接口回调的基本概念、实现方式以及其在实际开发中的应用。...

    接口回调实现简易购物车功能

    在编程领域,接口回调是一种常见的设计模式,它允许一个对象在另一个对象完成特定操作后接收通知或执行相应的处理。在本示例中,“接口回调实现简易购物车功能”着重展示了如何利用接口回调来构建一个简单的购物车...

    理解接口回调

    在Android开发中,接口回调是一种常见的编程模式,用于在组件之间进行通信,特别是当需要一个组件(如Activity或Fragment)响应另一个组件的行为时。本文将深入探讨接口回调的概念,以及如何在Android环境中有效地...

    接口回调传值

    本篇文章将详细探讨“接口回调传值”的概念及其在实际应用中的实现方式,以"InterfaceCallBackDemo1"为例进行讲解。 首先,理解接口回调传值的基本原理。在Android中,当需要在两个不直接相关的组件(如Activity和...

    接口回调之Fragment之间通信

    "接口回调之Fragment之间通信"这一主题着重讲解了如何通过接口回调的方式解决Fragment之间的数据传递和事件交互问题。 首先,理解Fragment的基本概念和生命周期是必要的。Fragment有自己的创建、显示、隐藏、销毁等...

    android接口回调第二种优化写法详解、另外附赠简单例子

    在Android开发中,接口回调是实现组件间通信的常见方式,尤其在异步操作中,如网络请求、数据加载等。然而,传统的接口回调方式可能会导致代码结构复杂,难以维护,因此开发者通常会寻求优化策略。本文将深入探讨第...

    Activity与Fragment通过接口回调进行通信

    在这种情况下,接口回调是一种常用且灵活的方式。 接口回调的基本原理是定义一个接口,这个接口定义了Activity和Fragment需要相互调用的方法。Activity实现接口作为接收方,Fragment持有接口引用作为调用方。当...

    Android 通过自定义Dialog来理解接口回调callback

    本文将深入探讨如何通过自定义Dialog来理解接口回调(callback)机制,这在进行Android应用开发时是非常重要的一项技能。 首先,让我们了解什么是自定义Dialog。在Android系统中,Dialog是一种半透明的窗口,用于...

    接口回调加载图片

    接口回调示例 简单好用 而且易懂 更能帮助你理解接口回调的机制

    接口回调demo完全解析

    在编程领域,接口回调是一种常见的设计模式,尤其在Java、C#等面向对象的语言中广泛使用。接口回调允许一个对象调用另一个对象的方法,而这个方法的定义在调用者中,而不是被调用者。这种模式使得代码更加灵活,能够...

    BroadcastReceiver通过接口回调更新界面

    在标题"BroadcastReceiver通过接口回调更新界面"中,我们关注的核心是BroadcastReceiver如何在不直接耦合到Activity的情况下,通过接口回调的方式来更新用户界面。 首先,BroadcastReceiver的常规用法是在Activity...

    匿名内部类实现接口回调

    在Java编程中,接口回调是一种常见的设计模式,用于在对象之间传递异步事件或实现通信。这个"匿名内部类实现接口回调"的示例旨在演示如何通过匿名内部类来简化回调函数的实现。下面我们将详细探讨接口回调的概念、...

    java接口回调

    在Java编程中,接口回调是一种常见的设计模式,用于实现异步操作或者事件处理。当我们谈论“Java接口回调”时,核心思想是:一个类通过实现特定接口,将自身的某个方法暴露给其他对象调用,当特定事件发生或任务完成...

    接口回调demo

    在Java编程中,接口回调是一种常见的设计模式,用于实现对象之间的通信和事件处理。当我们谈论“接口回调”时,我们通常是指一个类实现了接口,并在特定条件下调用接口中的方法来通知其他对象某个操作已完成或者发生...

    InterfaceCallbackDemo,接口回调

    在Android开发中,接口回调是一种常见的通信机制,用于在组件之间传递信息,特别是在处理用户交互时,如ListView的Item上的按钮点击事件。本示例"InterfaceCallbackDemo"着重讲解了如何利用接口回调来处理ListView中...

    android 接口回调

    在Android开发中,接口回调是一种常见的通信机制,用于在不同组件之间传递信息,尤其是在Activity、Service、BroadcastReceiver以及自定义View等之间的交互。接口回调允许一个对象调用另一个对象的方法,即使这两个...

Global site tag (gtag.js) - Google Analytics