对于对象来说接口就是一种协议,只有当对象(类)能够满足这个协议的时候,才能调用这个协议里定义的方法,换个角度就是接口为满足这个协议的的对象(类)提供了一个统一的公共的方法。
例:
定义一个二维图像接口Shape2D,里面定义了获得长度和面积的方法。定义一个圆类实现接口Shape2D。ShapeMath是一个测试类。这里面的Shape2D就是上面所说的协议,Circle这个类满足这协议,所以Circle创建的对象shape1能够调用Shape2D里面定义的方法,同样的定义一个Rectangl类,Rectangle创建的对象shape2也能调用Shape2D里定义的方法。这个两个对象(类)都满足这个协议,所以Shape2D为他们提供了统一的调用方法getLength(),getArea()。
public interface Shape2D { //接口中的属性必须是常量 //默认是public static final,必须是public static final public static final double size = 1; // 抽象方法:没有方法体的方法 // 接口中的方法默认是public abstract,必须是public abstract public abstract double getArea(); public abstract double getLength(); }
public class Circle implements Shape2D { private double R; public Circle(double R) { this.R = R; } public double getArea() { return R * R * Math.PI; } public double getLength() { return 0; } }
public class ShapeMath { public static void main(String[] args) { ShapeMath sm = new ShapeMath(); Shape2D shape1 = new Circle(10); double area1 = sm.getArea(shape1); System.out.println("面积是:" + area1); double len1 = sm.getLength(shape1); System.out.println("周长:" + len1); Shape2D shape2 = new Rectangle(10, 20); double area2 = sm.getArea(shape2); System.out.println("面积是:" + area2); double len2 = sm.getLength(shape2); System.out.println("周长:" + len2); } public double getArea(Shape2D shape) { return shape.getArea(); } public double getLength(Shape2D shape) { return shape.getLength(); } }
2、接口有什么用处呢?
答:①通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
②通过接口可以指明多个类需要实现的方法。
③通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
3、接口有什么特点?
答:① 接口没有构造方法,不能实例化(创建对象)
②接口中的属性都是常量,修饰符必须是public static final
③接口中的方法都是抽象方法,修饰符必须是public abstract
4、接口和类的区别
答:①接口有点像一个规范,一个歇息,是一个抽象的概念。
②类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
③从程序角度,简单理解,接口就是方法声明,类就是方法实现。
注:一个声明可能有很多种实现,一旦使用这个声明就必须调用这个方法声明里的所有方法。
相关推荐
11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别....
Java中的类、抽象类和接口的区别和联系
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
NULL 博文链接:https://wwhhll.iteye.com/blog/760051
接口-与抽象类之区别 6.接口-应用示例(设计模式) 7.内部类-简介 8.内部类-作用 9.内部类-特殊语法规则 10.内部类-安全性 11.内部类-局部内部类 12.内部类-匿名内部类 13.内部类-...
java 抽象类与接口的区别
在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别
深入浅出的说明java抽象类与接口区别,让初学者更好的理解java抽象类与接口的概念
简述抽象类和接口的区别-java接口和抽象类异同.docx
包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库...
详细介绍JAVA 接口用法,并详解与抽象类区别.还介绍多重继承.
\\java类、抽象类、接口、继承和对象解析 .doc
结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...
JAVA 继承基本类、抽象类、接口区别与联系
主要介绍了Java接口和抽象类的区别,对于Java的初学者来说是需要准确掌握的概念!
抽象类的基本概念 抽象类是Java中一种特殊的类,它不能被实例化,只能...抽象类和接口的区别 抽象类和接口都是用于定义通用属性和方法的,但抽象类可以有构造方法,接口不能有。抽象类只能单继承,接口可以实现多继承。