`
xy1234
  • 浏览: 510 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论
阅读更多

对于对象来说接口就是一种协议,只有当对象(类)能够满足这个协议的时候,才能调用这个协议里定义的方法,换个角度就是接口为满足这个协议的的对象(类)提供了一个统一的公共的方法。

例:

     定义一个二维图像接口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接口和抽象类的区别.zip

    11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别....

    Java 接口和抽象类区别

    Java接口和抽象类是两种重要的面向对象编程概念,它们在软件设计中扮演着关键角色,主要用来实现多态性和代码的可扩展性。虽然两者都用于定义类的行为,但它们之间存在着显著的区别。 首先,接口是一种完全抽象的...

    Java中的类、抽象类和接口的区别和联系

    Java中的类、抽象类和接口的区别和联系

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

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

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    java 抽象类与接口的区别

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们都用于实现多态性,但各自具有不同的特点和应用场景。了解并熟练掌握它们的区别对于编写高质量的Java代码至关重要。 首先,抽象类是一种不能被...

    java抽象类与接口区别

    ### Java抽象类与接口的区别 #### 一、引言 在Java编程中,抽象类(Abstract Class)与接口(Interface)都是实现抽象的关键工具。它们各自有着独特的优势和适用场景,掌握这两者的区别有助于开发者更好地设计系统...

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    ### Java利用接口和抽象类改写求圆的面积和梯形的面积 #### 深入理解Java的接口和抽象类 在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被...

    java 接口 java 接口java 接口

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

    java接口与内部类教学PPT

    接口-与抽象类之区别 6.接口-应用示例(设计模式) 7.内部类-简介 8.内部类-作用 9.内部类-特殊语法规则 10.内部类-安全性 11.内部类-局部内部类 12.内部类-匿名内部类 13.内部类-...

    JAVA中抽象类和接口的区别

    在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别

    Java接口和Java抽象类

    ### Java接口和Java抽象类详解 #### 一、引言 在面向对象编程语言Java中,接口(Interface)和抽象类(Abstract Class)是实现多态性和代码复用的重要手段。它们都允许开发者定义行为规范而不需要具体实现细节,但...

    Java源代码:抽象类和接口

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,为其他类提供模板或行为指南。让我们深入探讨这两个概念及其在Java中的应用。 首先,我们来理解抽象类。在Java中,抽象类是一...

    Java语言的接口与抽象类

    4. 多继承:Java接口支持多继承,一个接口可以继承多个父接口,实现接口的组合和扩展。 5. 实现:实现接口的类必须实现接口中声明的所有方法,否则这个类也必须被声明为抽象类。 其次,抽象类(Abstract Class)是...

    java中接口与抽象类的详细分析与比较

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键概念,它们各自有特定的用途和优缺点。本文将深入探讨这两种概念,帮助你理解它们之间的区别以及如何在实际开发中选择使用...

    \\java类、抽象类、接口、继承和对象解析 .doc

    Java 类、抽象类、接口和继承是面向对象编程的核心概念,它们构成了 Java 语言的基石。在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板...

    详解java接口interface

    Java 接口的定义与普通类的定义类似,区别在于使用关键字 `interface` 而不是 `class`。接口的定义格式如下: ```java public interface 接口名 { // 抽象方法和默认方法的定义 } ``` 二、Java 接口的抽象方法 ...

    JAVA接口的介绍

    Java接口是一种只包含抽象方法和常量的特殊类型,用于定义一组行为规范。在接口中声明的方法默认是公共的、抽象的,并且不允许有任何实现细节。通过继承接口,类可以实现这些方法来提供具体的功能。 #### 接口与类...

Global site tag (gtag.js) - Google Analytics