IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA学习笔记21.11.18(参考黑马程序员B站视频) -> 正文阅读

[Java知识库]JAVA学习笔记21.11.18(参考黑马程序员B站视频)

接口

一、概述

? ? ? ? 接口是一种公共的规范标准,只要符合规范标准,大家都可以通用,java中的接口更多体现在对象为的抽象。

二、特点

  • 接口用关键字interface修饰:public interface 接口名{}
  • 类实现接口用implements表示:public class 类名 implements 接口名{}
  • 接口不能实例化,需参照多态方式,通过实现类对象实例化(接口多态)。??

????????多态的形式:具体类多态,抽象类多态,接口类多态

????????多态的前提:有继承或者实现关系;有方法重写;有父(类/接口)引用指向(子/实现)类对象。

  • 接口的实现类:要么重写接口中的所有抽象方法,要么是抽象类。

三、成员特点

  • 成员变量:只能是常量,默认修饰符public static final
  • 构造方法:接口没有构造方法,接口主要是对行为进行抽象,没有具体存在(一个类没有父类,默认继承Object
  • 成员方法:只能是抽象方法,默认修饰符public abstract

四、案例(猫和狗)

? ? ? ? 1.需求:对猫和狗进行训练,加入跳高的功能,采用抽象类和接口来实现猫和狗案例。

? ? ? ? 2.思路:

? ? ? ? ? ? ? ? 1)定义接口:成员方法(跳高())

? ? ? ? ? ? ? ? 2)定义抽象动物类:成员变量(姓名,年龄),构造方法(无参,有参),成员方法(get/set方法,吃饭())

? ? ? ? ? ? ? ? 3)定义具体猫类:继承动物类,实现跳高接口,构造方法(无参,有参),成员方法(重写跳高(),重写吃饭())

? ? ? ? ? ? ? ? 4)定义具体狗类:继承动物类,实现跳高接口,构造方法(无参,有参),成员方法(重写跳高(),重写吃饭())

? ? ? ? ? ? ? ? 5)定义测试类,写代码测试。

? ? ? ? 3.代码实现:

? ? ? ? ? ? ? ? ? ? ? ? 接口:

package InterfanceStudy;

public interface Jump {
    public abstract void jump();
}

? ? ? ? ? ? ? ? ? ? ? ? 动物类:

package InterfanceStudy;

public abstract class Animal {
    private String name;
    private int age;

    public Animal() {
    }

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public abstract void eat();
}

? ? ? ? ? ? ? ? ? ? ? ? 猫类(狗类的类似):

package InterfanceStudy;

public class Cat extends Animal implements Jump{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    @Override
    public void jump() {
        System.out.println("猫跳高");
    }

    public Cat() {
    }

    public Cat(String name, int age) {
        super(name, age);
    }
}

? ? ? ? ? ? ? ? ? ? ? ? 测试类:

package InterfanceStudy;

public class Demo {
    public static void main(String[] args) {
        Jump j = new Cat();
        //j.eat(); //报错
        j.jump();
        System.out.println("--------");

        Animal a = new Cat();
        a.setName("加菲");
        a.setAge(5);
        System.out.println(a.getName() + "," + a.getAge());
        a.eat();
        System.out.println("--------");

        a = new Cat("波斯",6);
        System.out.println(a.getName() + "," + a.getAge());
        a.eat();
        //a.jump();  //报错
        System.out.println("--------");

        Cat c = new Cat("小肥猫",7);
        System.out.println(c.getName() + "," + c.getAge());
        c.eat();
        c.jump();
    }
}

? ? ? ? ? ? ? ??

五、类和接口关系

  • 类与类的关系:继承关系,可以单继承和多层继承
  • 类和接口关系:实现关系,可以单实现,也可以多实现,甚至可以在继承的同时实现多个接口
  • 接口和接口关系:继承关系,可以单继承和多继承

?六、抽象类和接口的区别

? ? ? ? 1.成员区别? ? ? ?

????????????????抽象类:变量,常量;有构造方法;有抽象方法也有非抽象方法

????????????????接口:常量;抽象方法

? ? ? ? 2.关系区别

? ? ? ? ? ? ? ? 类与类:继承,单继承

? ? ? ? ? ? ? ? 类与接口:实现,单实现和多实现

? ? ? ? ? ? ? ? 接口与接口:继承,单继承和多继承

? ? ? ? 3.设计理念区别

? ? ? ? ? ? ? ? 抽象类:对类抽象,包括属性和行为

? ? ? ? ? ? ? ? 接口:对行为抽象,主要是行为

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:30:07  更:2021-11-19 17:31:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:24:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码