JAVA学习遇到的问题:接口实现

引用知乎看到对接口的总结:

接口就是个招牌
比如说你饿了,看到前面有个挂着KFC的店,然后你想到可以进去买汉堡了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖汉堡(实现接口)。
那么为什么我们要去定义一个接口,这个店可以直接卖汉堡啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不知道里面卖的是啥。
我们可能就要进去问,你这里卖不卖汉堡啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
我们可能就要记住,XX路XXX号卖汉堡,XX...(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖汉堡,我们也不可能知道(不利于扩展)。

接口的定义如下:

[修饰符]interface<接口名>[extends<接口列表>]
{
    数据成员;   //默认为public static final
    成员函数;   //默认为public abstract
}

注意:接口可实现多重继承

接口的实现如下:

[访问修饰符]class 类名 implements[接口列表]
{
        public  成员函数;
}

示例如下:

 1 interface InterFace0{
 2     void print();
 3 }
 4 class InterFace1 implements InterFace0{
 5     public void print(){
 6         System.out.println("接口InterFace0实现");
 7     }
 8 }
 9 public class InterFace {
10     public static void main(String args[]){
11         InterFace1 inter = new InterFace1();
12         inter.print();
13     }
14 }

接口的多重继承:

1.可以让一个接口去继承多个接口, 再用一个类来实现接口

 1 interface InterFace0{
 2     void print0();
 3 }
 4 interface InterFace1{
 5     void print1();
 6 }
 7 //接口InterFace2继承InterFace0,InterFace1
 8 interface InterFace2 extends InterFace0,InterFace1{
 9 }
10 //achieve类实现接口
11 class achieve implements InterFace2{
12     public void print0(){
13         System.out.println("InterFace0  print0方法");
14     }
15     public void print1(){
16         System.out.println("InterFace1  print1方法");
17     }
18 }
19 public class InterFace {
20     public static void main(String args[]){
21         achieve inter = new achieve();
22         inter.print0();
23         inter.print1();
24     }
25 }
26 //输出:
27 //InterFace0  print0方法
28 //InterFace1  print1方法

2.也可以让一个类去继承多个接口

 1 interface InterFace0{
 2     void print0();
 3 }
 4 interface InterFace1{
 5     void print1();
 6 }
 7 //类achieve继承InterFace0,InterFace1两个接口
 8 class achieve implements InterFace0,InterFace1{
 9     public void print0(){
10         System.out.println("InterFace0  print0方法");
11     }
12     public void print1(){
13         System.out.println("InterFace1  print1方法");
14     }
15 }
16 public class InterFace {
17     public static void main(String args[]){
18         achieve inter = new achieve();
19         inter.print0();
20         inter.print1();
21     }
22 }
23 //输出:
24 //InterFace0  print0方法
25 //InterFace1  print1方法
时间: 2024-10-10 22:05:02

JAVA学习遇到的问题:接口实现的相关文章

我的java学习笔记(15)关于接口

1.接口技术主要用来描述具有什么功能,而并不给出每个功能的具体实现. 2.一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象. 3.在java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类的需求要遵从接口描述的统一格式进行定义. 4.接口中的所有方法自动的属于public. 5.接口决不能含有实例域,也不能在接口中实现方法. 6.提供实例域和方法实现的任务应该由实现接口的那个类来完成. 7.可以将接口看成是没有实例域的抽象类.但是这两个概念还是有区别的.

Java学习篇之---Collection接口

Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.JavaSDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口"如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Colle

Java学习个人备忘录之接口

abstract class AbsDemo { abstract void show1(); abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示-----接口  interface 定义接口使用的关键字不是class,是interface. 对于接口当中常见的成员:而且这些成员都有固定的修饰符1. 全局常量:public static final2. 抽象方法:public abstract 由此得出结论,接口中的成员

Java学习笔记—抽象类和接口

1.抽象类 在Java语言中使用abstrac关键字来定义抽象类和抽象方法,抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号. public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); //其余代码 } 抽象类总结: 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报

【Java学习笔记】Map接口的子接口---TreeMap

TreeMap,与TreeSet类似,可以对集合中的元素进行排序,同时保持元素的唯一性. 应注意,Comparable(实现接口,记得覆盖comparaTo方法),Comparator的使用. 1 import java.util.Iterator; 2 import java.util.TreeMap; 3 4 import cn.itcast.p2.bean.Student; 5 import cn.itcast.p3.comparator.ComparatorByName; 6 7 pub

java学习笔记之面向对象接口

面向对象接口总结 接口理解: 接口是功能的集合,接口的定义也使用.java文件,编译之后也产生.class文件.类的定义使用class  ,而接口的定义使用interface: 定义格式: 1 public interface 接口名{ 2 //常量定义格式:public static final 常量名(一般是大写) 3 成员变量->常量 4 //抽象方法定义:public abstract 返回值类型 方法名(参数列表) 接口中的方法全部是抽象方法 5 成员方法->抽象方法 6 } 7 /

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

一.接口 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体,例如: interface Printable { final int Max=100; void add(); float sum(float x,float y); } 1.接口声明 定义接口包含接口声明和接口体,和类不同的是,定义接口时使用关键字interface来声明自己是一个接口,格式如下: interface 接口的名字 2.接口体 接口体中包含常量的声明(没有变量)和抽象方法两部

Java学习--list,set接口使用

list接口: 泛型:规定list中的元素的类型 /*     *      * 泛型不能使用基本数据类型(可以使用基本类型的包装类)     *      */    public void testBasic() {        //List<int> list = new ArrayList<int>();//会报错的        List<Integer> list = new  ArrayList<Integer>();            

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空