ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-interface

2022-07-19 19:03:23  阅读:122  来源: 互联网

标签:Java 继承 void 多态 接口 抽象 interface public


1:接口概述:

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通过Java中的接口更多的体现在对行为的抽象。
接口的特点:

接口用interface关键字修饰。

public interface 接口名字{}

类和接口之间是实现关系, 用implements关键字表示。

public class 类名 implements 接口名{}

接口不能实例化
— 那接口如何实例化呢?可以通过多态的方式, 创建其子类对象, 来完成接口的实例化。
— 多态的形式:具体类多态,抽象类多态,接口多态。
— 多态的前提:有继承或者实现关系;重写父类所有的方法;有父(类/接口)引用指向(子/实现)类对象。
接口的实现类:
— 1.要么重写父接口中所有的抽象方法。
— 2.要么是抽象类。

public interface Jumpping {
    //抽象方法
    public abstract void jump();

}

*****这里接口中的抽象方法可以省略 public 和 abstract两个关键字。****

public class Cat implements Jumpping {

    // 重写父类中的所有抽象方法
    @Override
    public void jump() {
        System.out.println("猫要跳上楼顶............");
    }
    
    //子类成员方法
    public void eat(){
        System.out.println("猫吃鱼.....");
    }
}


/**
 * 测试类
 */
public class TestJumping {
    public static void main(String[] args) {
        //创建对象 测试接口多态
        Jumpping j1 = new Cat();
        j1.jump();  //猫要跳上楼顶............

        //测试子类对象
        Cat c1 = new Cat();
        c1.eat();  //猫吃鱼.....

        //向下转型
        Cat c2 = (Cat)j1;
        c2.eat();  //猫吃鱼.....  了解
    }
}

接口的成员特点:
成员变量:
— 只能是常量 默认有修饰符:public static final
构造方法:
— 接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在。一个类如果没有父类,默认继承自Object类
-成员方法:
— 只能是抽象方法 默认修饰符:public abstract

//接口类
public interface Study {
    int a = 20;     //这里的变量在接口中  相当于一个静态常量
    final int c = 50;
    static final int d = 50;
    // 新特性 有一个静态方法
    static void method1(){
        System.out.println("我是JDK1.8的新特性: 接口中可以写静态方法");
    }
    //新特性  有一个默认方法
    default void method2() {
        System.out.println("我是JDK1.8的新特性: 接口中可以写默认方法");
    }
    //抽象方法   省略了 public abstract
    void eat();
    void code();
}


//  实现类
public class StudyImpl implements Study {

    @Override
    public void eat() {
        System.out.println("学生要吃东西........");
    }

    @Override
    public void code() {
        System.out.println("吃完东西就好好敲代码..");
    }

}


//测试类
public class TestStudy {
    public static void main(String[] args) {
        //接口多态写法
        Study s = new StudyImpl();
        s.eat();   //学生要吃东西........
        s.code();  //吃完东西就好好敲代码..
    }
}

类和接口之间的关系:

类和类之间的关系: 继承关系,只能单继承,但是具有传递性。
类和接口之间的关系: 实现关系, 可以单实现, 也可以多实现. 还可以在继承一个类的同时实现多个接口。
接口与接口之间: 继承关系, 可以单继承, 也可以多继承。
抽象类和接口的区别(记忆)

成员区别:

抽象类
​ 变量,常量;有构造方法;有抽象方法,也有非抽象方法
接口
​ 常量;抽象方法

关系区别:

类与类
​ 继承,单继承
类与接口
​ 实现,可以单实现,也可以多实现
接口与接口
​ 继承,单继承,多继承
设计理念区别

抽象类
​ 对类抽象,包括属性、行为
接口
​ 对行为抽象,主要是行为

标签:Java,继承,void,多态,接口,抽象,interface,public
来源: https://www.cnblogs.com/burberry/p/16495276.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有