接口基本定义及应用

接口

1、 接口的定义:

接口严格来讲是一个只有全局常量和抽象方法的特殊的类,接口的主要功能是解决但继承局限问题。

1.1使用interface关键字定义接口:

Interface A{

Public static final String MSG=”Hello”  ………//全局常量

Public abstract void print();………        //抽象方法

1.2由于接口里存在抽象方法,所以接口对象不可以直接使用关键字new进行实例化,所以接口有如下几点使用原则:

1) 接口必须要有子类,但一个子类可以使用implements关键字实现多个接口

Class A implements C,B{ }

2) 接口的子类如果不是抽象类,必须要覆写接口的全部抽象方法

3) 接口的对象可以利用子类对象的向上转型进行实例化操作

例:interface A{}

interface B{ }

class x implements A,B{}

X x=new x();   //实例化子类对象

A a=x;        //向上转型

B b=x        //向上转型

1.3当一个类既要继承一个类又要实现一个接口时要先extends再implements.

1.4以下;两种接口的定义方法是完全一样的:

Interface A{                                      Interface A{

Public  static final String MSG=”Hello”;                String MSG=”Hello”;

Public abstract void fun();}                            void fun();}

在接口里面没有写public,其最终的访问权限也是public,而不是default。

1.5接口可以用extends继承类:

Interface B extends A,C{}

但子类要覆写A,B,C所有抽象方法

1.6在接口里可以定义普通内部类,抽象内部类,内部接口。在一个接口的内部如果使用static定义一个内部接口表示定义了一个外部接口。

2、 接口的实际应用——标准

应用实例:

Interface USB{//定义USB标准

Public void start();

Public voidstop();

Class computer{//定义电脑

Public void plugin(USB usb){//插入

Usb.start();

Usb.stop();

Class flash implements USB{// 定义U盘

Public void start(){

System.out.println(“U盘开始使用”);

}

Public void stop(){

System.out.println(“U盘结束使用”);

Public static testDemo{

Public static void main(String[] args){

Computer com=new computer();

Com.plugin(new Flash);

}

}

3、 接口的应用——工厂设计模式

应用实例:

package testDemo;

interface Fruit{//fruil接口

public void eat();

}

class Apple implements Fruit{//苹果

public void eat(){

System.out.println("***吃苹果");

}}

class Orange implements Fruit{//橘子

public void eat(){

System.out.println("***吃橘子");

}}

class Factory{//工厂类

public static Fruit getInstance(String className){

if("apple".equals(className))

return new Apple();

else

return new Orange();

}}

public class testDemo{

public static void main(String[] args){

Fruit f=Factory.getInstance("Apple");

f.eat();

}}

4、接口的应用——代理设计模式

package testDemo;

interface Subject{//整个操作的核心主题

public void make();//核心功能

}

 

class RealSubject implements Subject{

public void make(){

System.out.println("正在执行");

}

}

class ProxySubject implements Subject{

private Subject subject;

public ProxySubject(Subject subject){

this.subject=subject;

}

public void prepare(){

System.out.println("执行前");

}

public void make(){

this.prepare();

this.subject.make();

this.finish();

}

public void finish(){

System.out.println("执行后");

}

}

public class testDemo{

public static void main(String[] args){

Subject sub=new ProxySubject(new RealSubject());

sub.make();//调用的是代理主题操作

}}

真实主题类只完成核心任务,而代理主题类完成所有与核心业务有关的辅助操作

4、 抽象类与接口的区别


No


区别


抽象类


接口


1


关键字


Abstract class


Interface


2


组成


构造方法、普通方法、抽象方法、static方法、常量、变量


全局常量、抽象方法


3


子类使用


Class 子类、extends抽象类


Class子类 implements 接口..


4


关系


抽象类可以实现多个接口


接口不能继承抽象类,可以继承多个父接口


5


权限


可以使用各种权限


只能使用public权限


6


限制


单继承局限


没有单继承局限

时间: 2024-10-29 05:10:05

接口基本定义及应用的相关文章

Java接口里定义成员变量 说明

首先你要弄清接口的含义.接口就是提供一种统一的'协议',而接口中的属性也属于'协议'中的成员.它们是公共的,静态的,最终的常量.相当于全局常量. 在interface里面的变量都是public static final 的.所以你可以这样写: public static final int i=10; 或则 int i=10;(可以省略掉一部分,在接口里的成员变量默认就是public static final) 注意在声明的时候要给变量赋予初值 解释: 首先你要弄清接口的含义.接口就是提供一种统

java中接口的定义与实现

1.定义接口 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成.定义接口的基本格式例如以下: [修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; } 修饰符:可选,用于指定接口的訪问权限,可选值为public.假设省略则使用默认的訪问权限. 接口名:必选參数,用于指定接口的名称,接口名

接口,接口的定义

接口interface,顾名思义,是为了一种事物与另一种事物进行交流提供的通道(手段),例如我们现在的操作系统是Windows系统,我们见到的界面和各个功能的按钮都是图形用户接口,接口就是用户和应用程序内部交互的界面.接口实际上有两种含义:一是一个类所具有的方法的特征集合,是一种逻辑上的抽像:二是java接口,java语言中存在的结构,有特定的语法和结构,前者叫做"接口"后者叫做"java接口".本节我们研究的是java接口. java中的接口是一系列方法的声明,是

教你在Java接口中定义方法

基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClient,其代码结构如下: import java.time.*; public interface TimeClient { void setTime(int hour, int minute, int second); void setDate(int day, int month, int yea

java 子接口中定义与父接口相同的方法

今天碰到一个很有意思的问题,在java中如果子接口中定义了与父接口中已经有的方法会发生什么事情呢?比如: interface IRunnable extends Runnable{ void run(); } 刚开始我还以为这样子的语法应该不能通过编译器,没有想到这样子做编译器并没有做出任何警告. 当然大多数情况下我们都不会这么做,因为这样做似乎没有什么意义.但为了真相,我还是做了个小实现: public class InterfaceDebug{ public static void main

C++接口的定义与实现的详细过程

1.接口的定义与实现 所谓的接口,即将内部实现细节封装起来,外部用户用过预留的接口可以使用接口的功能而不需要知晓内部具体细节.C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同,从而实现多态.现通过一个简单的实例讲解具体实现步骤(⊙o⊙). 1.1类接口的定义    通常在头文件中完成类接口的定义 /*InterfaceDefineAndRealize.h*/ [cpp] view plain

java接口中定义成员变量

//抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract void work(); } 而如下截图中的People接口中,定义成员变量报错: 接口的含义理解:接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的 接口的成员特点: A:成员变量 只能是常量.默认修饰符 public static

python 之浅谈接口的定义和抽象类以及抽象方法

#_*_ coding:utf-8 _*_ #知识点:接口的定义和抽象类以及抽象方法 ''' 1.抽象类式啥? 抽象类加上抽象方法就等于接口 2.接口的定义 含义1.别人给你暴露一个URL,然后调用这个URL 含义2.定义一个规范,不写具体实现,按照这个规范去实现相关功能,抽象类就是属于这种 ''' from abc import  ABCMeta, abstractmethod #定义一个抽象类 class Alert:     __metaclass__ = ABCMeta     @abs

python接口的定义

什么是接口 ? 接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功能. 个人的理解,多用于协作开发时,有不同的人在不同的类中实现接口中的各个方法. 在python中接口由抽象类和抽象方法去实现,接口是不能被实例化的,只能被别的类继承去实现相应的功能. 个人觉得接口在python中并没有那么重要,因为如果要继承接口,需要把其中的每个方法全部实现,否则会报编译错误,还不如