Java学习(二)--接口与实现

一。接口

  使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口声明和接口体,例如:

  

interface Printable
{
      final int Max=100;
      void add();
      float sum(float x,float y);
} 

1.接口声明

  定义接口包含接口声明和接口体,和类不同的是,定义接口时使用关键字interface来声明自己是一个接口,格式如下:

  

interface 接口的名字

2.接口体

  接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法,没有普通的方法,而且接口体中所有的常量的访问权限一定都是public,而且是static常量(允许省略public,final和static修饰符),所有的抽象方法的访问权限一定都是public(允许省略public abstract修饰符),例如:

interface Printable
{
    public static final int Max=100;     //等价写法:int Max=100;
    public abstract void add();          //等价写法:void add();
    public abstract float sum(float x,float y);
}

二。实现接口

1.类实现接口

  在Java语言中,接口由类来实现以便使用接口中的方法。一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。如果实现多个接口,用逗号隔开接口名,例如A类实现Printable和Addable接口。

class A implements Printable,Addable

再如,Animal的Dog子类实现Eatable和Sleepable接口。

class Dog extends Animal implements Eatable,Sleepable

2.重写接口中的方法

  如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。需要注意的是,由于接口中的方法一定是public abstract方法,所以类在重写接口方法时不仅要去掉abstract修饰符,给出方法体,而且方法的访问权限一定要明显地用public来修饰(否则就降低了访问权限,这是不允许的)。实现接口的非抽象类实现了该接口中的方法,即给出了方法的具体行为功能。

  下面的例子中包含China类,Japan类和Computable接口,而且China类和Japan类都实现了Computable接口。

  Computable.java

public interface Computable
{
    int Max=46;
    int f(int x);
}

  

  China.java

public class China implements Computable
{
    int number;
    public int f(int x)
    {
        int sum=0;
        for (int i=1;i<=x;i++)
        {
            sum=sum+i;
        }
        return sum;
    }
}

 

  Japan.java

public class Japan implements Computable
{
    int number;
    public int f(int x)
    {
        return Max+x;
    }
}

  

  Main.java

public class Main {
    public static void main(String[] args) {
        China zhang;
        Japan henlu;
        zhang=new China();
        henlu=new Japan();
        zhang.number=32+Computable.Max;
        henlu.number=14+Computable.Max;
        System.out.println("zhang的学号"+zhang.number+",zhang的求和结果"+zhang.f(100));
        System.out.println("henlu的学号"+henlu.number+",henlu的求和结果"+henlu.f(100));
    }
}

原文地址:https://www.cnblogs.com/godlikeyt/p/10462591.html

时间: 2024-10-20 00:56:26

Java学习(二)--接口与实现的相关文章

Java学习:二 基础

2014 - 5 - 22 上午 Java对大小写敏感. 点号(.)用于调用方法,Java的能用语法是: object.method(parameters); Java中的常量声明使用final关键字.且仅能赋值一次.习惯上,常量名大写. 可使用static final 定义一个类常量,以便在一个类中的多个方法中使用. 类常量定义在main方法外部,以便同一类其它方法可以使用.若使用public关键字,则其它类的方法也可以使用此常量. 字符串: Java中,允许使用+号拼接两个字符串. Java

Java学习之接口概念

Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类.但是在实际应用中,又经常需要使用多继承来解决问题.为了解决该问题,Java语言提供接口来实现类的多继承问题. 1.接口的定义 使用interface来定义一个接口.接口定义与类的定义相似,也是分为接口的声明和接口体,其中接口体由变量定义和方法定义两部分组成.定义接口的基本语法格式如下: [修饰符]interface  接口名  [extends  父接口名列表]{ [public] [static] [final]  变量: [p

java学习之接口、多态和内部类

接口是一组行为的规范.定义.接口是面向对象编程体系中的思想精髓之一,使用接口可以让我们的程序更加利于变化. 接口的格式: interface 接口名称{ 全局变量: 抽象方法: } 接口中的成员修饰符是固定的,成员常量用public static  final修饰:成员函数用public  abstract修饰,接口的出现将“多继承”通过多实现来体现.接口的使用也有一定的规则:接口可以继承多个接口,一个类中可以实现接口和多接口,抽象类实现接口可以不实现方法:接口中的所有实现方法的访问权限都是pu

java学习之接口

一.基本概念 接口(Interface),在java编程语言中是一个抽象类型,是抽象方法的集合.接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类.只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有. 二.接口的使用 1.由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化.接口的使用原则如下: (1)

Java学习(二)--java概述

一 发展 看了java的发展史,发现他的发展充满了戏剧性.它没有经过精心的策划.制作,但是它的产生却具有了划时代的意义,一切的形成都好像顺利成章,又充满了传奇. 1990年,sun公司准备为下一代只能家电编写通用控制系统.因为C++的api存在的问题,创造了一种新的语言oak. 1992年,在其竞争机顶盒平台倡议中,因其过分给用户控制权而落选.否极泰来,在这里得到了最好的验证,再坚持一点点.下一个一点点就是转机. 1994年,互联网和浏览器的出现给oak带了希望.进过调整后,着眼于浏览器方法.更

Java学习之接口的子类必须实现接口的全部方法吗?

接口的子类必须实现接口的全部方法吗?      接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下:      如果子类是非抽象类,则必须实现接口中的所有方法:      如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在! 1.抽象类定义 抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象.通常在编程语句中用 abstract 修饰的类是抽象类.在C++中,含有纯虚拟函数的类称为抽象类,它不能生

Java学习二:Javac Java的学习(原创)

安装完了JDK,就可以编译.执行简答的Java程序了, 一.Javac  ,Java 路径名和包名的关系: 在D盘下,建文件夹Test,在Test里创建文件Java1.java(类名要与文件名一致) Java1.java  : package Test; public  class  Java1 { public static void  main(String[] args) { system.out.println("hello world"); } } 使用的命令: d:\Tes

Java学习二(飞机大战项目)day09

day09 1.子弹与敌人的碰撞 1)在超类中FlyingObject设计hit()实现敌人与子弹/英雄机得碰撞 /** 成员方法:检测敌人与子弹/英雄机的碰撞 * this:敌人 other:子弹 */ public boolean hit(FlyingObject other) { int x1 = this.x - other.width; int x2 = this.x + this.width; int y1 = this.y - other.height; int y2 = this

JAVA学习&lt;二&gt;

1.JAVA中的关键字: Java 关键字是区分大小写的哦!所以 void 是关键字,但 Void 就不是了~~ 2.JAVA标识符: 标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 使用标识符时,需要遵守几条规则: 1.  标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头.譬如:123name 就是不合法滴 2.  标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),

Java学习(二十二):随机数的产生方法

Java随机数的产生方式 在Java中,随机数的概念从广义上将,有三种. 1.通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字. 2.通过Math.random()返回一个0到1之间的double值. 3.通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大. java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,分别是Random()和Random(long seed).Random()此构造方