`
schy_hqh
  • 浏览: 555881 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

(基础)java中的接口interface

 
阅读更多

接口Interface

 

接口定义的是一系列行为;

接口真正的应用要落实到多态的应用上,才能达到提高扩展性的目的!

 

 

 

接口的存在意义:

接口侧重于对功能的描述,是一种全局性的功能声明,所以,方法都是abstract的;

接口不负责功能的具体实现,交由子类去做;

接口侧重于为子类提供功能的扩展;

 

接口的一些特点:

接口中的成员都是public的,对外都是可见的;

接口中的属性的都是全局常量;

接口中的方法都是公有的抽象方法;

接口弥补了Jave中没有多继承的缺陷,一个类可以同时实现多个接口;

接口可以多继承其它接口(因为接口中的方法没有方法体,所以可以多继承);

 

继承与接口结合使用非常强大:

继承提供共性功能的复用

接口提供功能的扩展,解决了Java单继承的局限性,对额外功能提供了无限扩展

 

 

全局常量  

固定修饰符 public static final(不写Java会自动补全)

public interface InterfaceA {
	public static final int MAX_AGE = 140;
}

 

 

抽象方法  

固定修饰符public abstract (不写Java会自动补全)

 

public interface InterfaceA {
	
	public abstract void skillA();
	
	public abstract void skillB();
	
}

 

多实现

 

public interface InterfaceA {
	
	public static final int MAX_AGE = 140;

	
	public abstract void skillA();
	
	public abstract void skillB();
	
}

 

public interface InterfaceB {
	
	public abstract void methodA();
	
}

 

public class ImplementClass implements InterfaceA, InterfaceB{


	@Override
	public void skillA() {
		System.out.println("AAAAAAAAAAAAAAAA");
	}

	@Override
	public void skillB() {
		System.out.println("BBBBBBBBBBBBBBBB");
	}

	@Override
	public void methodA() {
		System.out.println("methodA");
	}
}

 测试

public class Test {
	public static void main(String[] args) {
		ImplementClass impl = new ImplementClass();
		impl.skillA();
		impl.skillB();
		impl.methodA();
	}
	
	/*
		AAAAAAAAAAAAAAAA
		BBBBBBBBBBBBBBBB
		methodA
	 * */
}

 

========================================================================

 

面向接口编程/面向抽象编程

 

什么是面向接口编程?

即,不针对具体,而是针对抽象进行编程!

程序运行时,只要传入的参数类型正确(实现了某个接口),程序就能运行!

所谓的扩展,指的是实现接口的子类可以进行无数不同功能的开发,最终以接口子类的身份传入到调用者那里,程序都支持,而且能正确运行,这就是所谓的扩展!

 

在代码中的具体体现

主体程序中方法的入参是一个接口类型的引用

该引用实际指向的是某个具体的实现(多态的支持)

对于方法而言,面向的都是统一的上层接口,处理方式都是一样的

而在实际执行时,由Java动态绑定机制实现对具体实现类的调用

这就是面向接口编程,这就是使用接口能提高程序扩展性的原因!

 

示例:

 1.接口,定义一组行为                                    interface

 2.类实现接口,对行为进行具体的描述        class A  implements InterfaceA

 3.方法入参为接口,多态(运行时有多种形态)的支持

  public void method(InterfaceA  a)

 4.方法内部面向统一的接口进行编程,不关心具体如何实现

 

接口---定义规则

 

/**
 * 接口定义一组行为
 * @author Administrator
 *
 */
public interface InterfaceA {
	
	public static final int MAX_AGE = 140;

	
	public abstract String skill();
	
	
}
 

 

实现类A,A类事物具备InterfaceA的行为--- 实现规则

 

/**
 * 子类根据自身环境决定如何实现接口中的行为
 * @author Administrator
 *
 */

public class SubClassA implements InterfaceA {


	@Override
	public String skill() {
		return "using java";
	}

}
 
 实现类B,B类事物具备InterfaceA的行为--- 实现规则

 

 

/**
 * 实现类
 * @author Administrator
 *
 */
public class SubClassB implements InterfaceA {


	@Override
	public String skill() {
		return "using c";
	}

}
 

 

使用接口的类/面向接口编程的类,凡是符合InterfaceA接口的对象,该类都能处理

这就是扩展性,面向接口进行开发!--- 使用规则

 

public class Main {
	
	//面向接口
	public String invoke(InterfaceA a) {
		return a.skill();
	}
	
}
 

 

测试

public class Test {
	public static void main(String[] args) {
		
		Main main = new Main();
		
		//多态
		InterfaceA a1 = new SubClassA();
		//方法的入参:面向接口
		String s1 = main.invoke(a1);
		System.out.println(s1);
		
		InterfaceA a2 = new SubClassB();
		String s2 = main.invoke(a2);
		System.out.println(s2);
		
		//还可以有无数对InterfaceA的实现,都可以被invoke()接收,这就是扩展
	}
	
}

 

 

 

 

分享到:
评论

相关推荐

    Java接口(interface)的概念及使用-Java教

    Java接口(Interface)是Java编程语言中的一个关键概念,它是一种完全抽象的类型,用于定义对象的行为标准。接口中只包含常量定义和抽象方法,不包含任何实现代码。理解并熟练使用Java接口,对于提升代码的灵活性、...

    java 接口 java 接口java 接口

    Java接口在Java编程语言中扮演着至关重要的角色,它是实现多态性和抽象化的关键机制。接口定义了一组方法签名,但不提供具体实现,这使得类可以实现多个接口,从而表现出多种行为。以下是对Java接口的详细解释: 一...

    JNI(Java Native Interface)中文手册

    JNI(Java Native Interface)是Sun Microsystems公司定义的一套标准接口,用于实现Java代码与本地代码(通常是C或C++)之间的交互。随着Java的发展,JNI的重要性日益凸显,因为它允许Java程序调用本地库的功能,...

    java中接口的作用

    Java 中接口的作用 Java 中的接口是一种抽象的概念,它定义了一组方法的集合,但不提供实现。接口的主要作用是提供一种规范,以便实现类来实现这些方法。接口的作用主要体现在以下几个方面: 多重继承:Java 中的...

    博客资源-《java基础——接口》

    在本文中,我们将深入探讨Java接口的基础知识,包括接口的定义、使用、接口与抽象类的区别以及接口中的默认方法等核心知识点。 首先,接口在Java中是一个完全抽象的类型,它只包含常量定义和抽象方法声明,不包含...

    Java基础--接口类

    Java接口类是定义行为规范的工具,它促进了代码的灵活性、可维护性和多态性。通过实现接口,类可以具备多种行为,并且能够在不修改原有代码的基础上扩展功能。接口的默认方法和静态方法进一步增强了其功能,使得接口...

    java 接口 代码实例

    总的来说,Java接口提供了定义行为规范的方式,它促进了代码的可扩展性和灵活性。通过接口,我们可以实现类与类之间的松耦合,使得系统更易于维护和升级。在给定的文件`Studens.java`中,可能包含一个实现了`...

    Java__接口、内部类和Java_API基础

    "Java接口、内部类和Java_API基础" Java接口是Java语言中的一个抽象概念,它定义了一组方法的集合,但不提供实现。Java接口的主要特点是它不能被实例化,必须由其他类来实现。接口的声明格式为: ``` public ...

    Java 本地接口规范

    综上所述,Java本地接口规范(JNI)是Java生态系统中的一个关键组成部分,它不仅连接了Java世界与本地代码的世界,还为Java开发者提供了强大的工具箱,使他们能够在各种应用场景下发挥Java的优势。通过深入理解JNI的...

    DELPHI 7 调用 JAVA 接口

    首先,理解Delphi 7调用Java接口的基础原理。这种通信通常依赖于Java的本地接口(JNI,Java Native Interface),它允许Java代码调用C/C++代码,而Delphi代码可以编译为C++兼容的库。因此,Delphi通过JNI桥接,可以...

    DELPHI 11调用JAVA 接口

    本篇将详细介绍如何在Delphi 11中调用Java接口,并传递参数及接收返回结果。 1. **JNI(Java Native Interface)基础** JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。在Delphi中调用...

    Java语言提供的一种接口(interface)机制

    Java 语言中的接口(Interface)是面向对象编程的重要组成部分,它提供了一种抽象层次更高、更为灵活的机制,使得类可以实现多个行为或特质。接口是完全抽象的,不包含任何方法的实现,只包含方法签名(方法名、返回...

    C++头文件转JAVA JNA接口类

    JNA通过定义Java接口来映射C/C++函数,并在运行时动态加载本地库,实现调用。这极大地简化了Java代码与C/C++代码之间的交互过程。 要将C++头文件转换为JNA接口,我们通常会使用一个名为SWIG(Simplified Wrapper ...

    Java Native Interface Specification R1.1

    Java Native Interface(JNI)是Java开发中的一个重要概念,它允许Java代码与其他语言编写的代码进行交互,尤其是与C或C++编写的本地应用程序接口(API)进行交互。JNI在Java应用程序中扮演着桥梁的角色,使得Java...

    java中的interface接口实例详解

    Java接口不能像类那样通过`new`关键字来创建对象。它们是纯粹的抽象,只包含方法的声明,没有方法体。因此,我们不能直接调用接口的方法,必须通过实现接口的类来访问。 2. **接口中的成员默认为public**: 接口...

    java 中的接口与继承

    在Java编程语言中,接口(Interface)和继承(Inheritance)是面向对象设计的重要特性,它们为代码提供了灵活性、可扩展性和复用性。本文将深入探讨这两个概念以及它们在实际开发中的应用。 首先,我们来看一下接口...

    详细解析Java中抽象类和接口的区别

    ### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...

    Java基础 接口.pdf

    Java接口是Java编程语言中的一个重要概念,它是一个完全抽象的类型,主要由抽象方法和常量组成。接口通过`interface`关键字进行声明,它提供了一种定义规范的方式,允许类通过实现接口来遵循这些规范。 **接口的...

    java接口的妙用.txt

    Java接口的基础 Java接口是一组抽象方法的集合,它们定义了类应该具备的行为但不提供具体实现。通过实现接口,类可以提供这些方法的具体实现。接口中所有方法默认都是public abstract的,不允许有具体的方法实现...

    java里关于接口的教学视频

    总的来说,这个教学视频将帮助初学者全面掌握Java接口的概念,学会如何在实际项目中有效地利用接口进行设计,提高代码质量和可维护性。通过生动易懂的讲解,初学者可以迅速上手并应用接口这一强大的工具。

Global site tag (gtag.js) - Google Analytics