zoukankan      html  css  js  c++  java
  • 2020年8月31日 接口的声明与实现

    /*
    * 一、如何声明接口?
    * 1、接口的语法格式:
    * 【权限修饰符】 interface 接口名{
    * 接口的成员列表;
    * }
    *
    * 2、接口的成员
    * JDK1.8之前:只能有两种成员
    * (1)全局的静态的常量:public static final,而且这三个单词可以省略
    * 为什么只能是常量?
    * 因为标准中,只能写定死的
    *
    * (2)公共的抽象的方法:public abstract,而且这两个单词可以省略
    * 为什么只能是抽象方法?
    * 标准中只规定有什么行为标准,行为特征。至于你怎么实现,那么你自己说了算。
    *
    * 二、 如何实现接口?
    * 语法格式:
    * 【修饰符】 class 实现类 implements 父接口们{
    * }
    *
    * 三、接口的特点
    * 1、接口是标准,就是用来被遵守的,即就是用来被实现的,那么要求实现类在实现接口时,必须实现/重写所有的抽象方法
    * 否则这个实现类就得是一个抽象类
    * 2、接口也是不能直接创建对象的
    * 3、接口类型的变量实现类的对象构成多态引用
    * 4、一个类继承父类时,我们说Java只支持单继承,但是一个类在实现接口时,可以同时实现多个接口
    * 5、一个类如果同时继承父类,又实现接口时,要求继承在前,实现在后
    * 【修饰符】 class 实现类 extends 父类 implements 父接口们{
    * }
    * 6、在Java中,接口还可以继承接口
    * 【权限修饰符】 interface 子接口 extends 父接口们{
    * }
    */

    package com.atguigu.test01;
    
    
    public class TestInterfaceDefineAndUse {
        public static void main(String[] args) {
    //        Flyable f = new Flyable();//接口不能直接创建对象的
            Flyable[] sky = new Flyable[3];
            //数组的元素类型Flyable类型,是接口类型
            sky[0] = new Bird();//多态引用
            sky[1] = new Plane();
            sky[2] = new Kite();
            
            for (int i = 0; i < sky.length; i++) {
                //数组的元素类型Flyable类型,是接口类型
                sky[i].fly();
            }
        }
    }
    //声明一个Flyable接口
    interface Flyable{
    //    public static final long MAX_SPEED = 7900000;
        long MAX_SPEED = 7900000;
        
    //    public abstract void fly();
        void fly();
    }
    //声明一个Jumpable接口
    interface Jumpable{
        void jump();
    }
    class Animal{
        
    }
    //让小鸟继承Animal,并实现Flyable和Jumpable
    class Bird extends Animal implements Flyable,Jumpable {
    
        //重写接口的抽象方法,实现接口的抽象方法
        @Override
        public void fly() {
            System.out.println("小鸟振翅高飞");
        }
    
        @Override
        public void jump() {
            System.out.println("双脚跳");
        }
        
    }
    class Plane implements Flyable{
    
        @Override
        public void fly() {
            System.out.println("靠发动机带动飞行");
        }
        
    }
    class Kite implements Flyable{
    
        @Override
        public void fly() {
            System.out.println("靠人放");
        }
        
    }
    
    interface A{
        void a();
    }
    interface B{
        void b();
    }
    interface C extends A,B{
        void c();
    }
    class Impl implements C{
    
        @Override
        public void a() {
        }
    
        @Override
        public void b() {
        }
    
        @Override
        public void c() {
        }
        
    }
  • 相关阅读:
    异常处理机制中的return关键字
    QuickHit 项目
    kali2.0升级
    sslscan
    RC4弱密码套件检测
    CVE-2017-11882漏洞复现
    应急响应小总结
    服务器日志分析
    《x86汇编语言:从实模式到保护模式 》学习笔记之:第一次编写汇编语言
    nasm不是内部或外部命令
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13589235.html
Copyright © 2011-2022 走看看