对于对象来说接口就是一种协议,只有当对象(类)能够满足这个协议的时候,才能调用这个协议里定义的方法,换个角度就是接口为满足这个协议的的对象(类)提供了一个统一的公共的方法。
例:
定义一个二维图像接口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中的类、抽象类和接口的区别和联系
### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们都用于实现多态性,但各自具有不同的特点和应用场景。了解并熟练掌握它们的区别对于编写高质量的Java代码至关重要。 首先,抽象类是一种不能被...
### Java抽象类与接口的区别 #### 一、引言 在Java编程中,抽象类(Abstract Class)与接口(Interface)都是实现抽象的关键工具。它们各自有着独特的优势和适用场景,掌握这两者的区别有助于开发者更好地设计系统...
### Java利用接口和抽象类改写求圆的面积和梯形的面积 #### 深入理解Java的接口和抽象类 在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被...
Java接口在Java编程语言中扮演着至关重要的角色,它是实现多态性和抽象化的关键机制。接口定义了一组方法签名,但不提供具体实现,这使得类可以实现多个接口,从而表现出多种行为。以下是对Java接口的详细解释: 一...
接口-与抽象类之区别 6.接口-应用示例(设计模式) 7.内部类-简介 8.内部类-作用 9.内部类-特殊语法规则 10.内部类-安全性 11.内部类-局部内部类 12.内部类-匿名内部类 13.内部类-...
在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别
### Java接口和Java抽象类详解 #### 一、引言 在面向对象编程语言Java中,接口(Interface)和抽象类(Abstract Class)是实现多态性和代码复用的重要手段。它们都允许开发者定义行为规范而不需要具体实现细节,但...
在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,为其他类提供模板或行为指南。让我们深入探讨这两个概念及其在Java中的应用。 首先,我们来理解抽象类。在Java中,抽象类是一...
4. 多继承:Java接口支持多继承,一个接口可以继承多个父接口,实现接口的组合和扩展。 5. 实现:实现接口的类必须实现接口中声明的所有方法,否则这个类也必须被声明为抽象类。 其次,抽象类(Abstract Class)是...
在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键概念,它们各自有特定的用途和优缺点。本文将深入探讨这两种概念,帮助你理解它们之间的区别以及如何在实际开发中选择使用...
Java 类、抽象类、接口和继承是面向对象编程的核心概念,它们构成了 Java 语言的基石。在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板...
Java 接口的定义与普通类的定义类似,区别在于使用关键字 `interface` 而不是 `class`。接口的定义格式如下: ```java public interface 接口名 { // 抽象方法和默认方法的定义 } ``` 二、Java 接口的抽象方法 ...
Java接口是一种只包含抽象方法和常量的特殊类型,用于定义一组行为规范。在接口中声明的方法默认是公共的、抽象的,并且不允许有任何实现细节。通过继承接口,类可以实现这些方法来提供具体的功能。 #### 接口与类...