• 接口


    接口 interface
    修饰符    interface 接口名{
        常量
        抽象方法
    }
    修饰符:默认|public
    接口名:自定义,规则与类名相同,一般I字母打头:wifi接口(IWifi)
    示例:
        public interface IWifi{
            int COUNT=1;
            public abstract void send1();
            void receive1();
        }
    属性:
        所有属性都必须赋初始值,默认都有是public static final类型的修饰符
        所有方法都是抽象的,默认都是public abstract类型的修饰符
     
    java特点之一:单一继承,但实现多个接口
    类如何实现接口:
        示例:
        public class Mobile implements IWifi{
            public void send1(){
                System.out.println("用wifi发送信息");
            }
            public void receive1(){
                System.out.println("用wifi接收信息");
            }
            public void send(){
                System.out.println("用手机发短");
            }
        }
    注意:
        1.类如果没有实现全部的抽象方法,这个类必须定义为抽象类implements关键字
        2.接口可以被子接口继承,使用extends关键字
        3.一类可以继承一个父类,实现多个接口
        4.接口不能实例化对象,但接口类型变量可以引用实现的子类对象
    示例:
        public interface IUSB2{
            public abstract void send2();
            public void receive2();
        }
     
        public interface IUSB3 extends IUSB2{
            public abstract void connection(IUSB3 usb);       
        }
    示例:继承一个父类,实现多个接口
    public class Computer{
        public void downLoad(){}
        public void upLoad(){}
        ...
    }
    public class Dell_Computer extends Computer implements IWifi,IUSB3{
        public  void connection(IUSB3 ortherUsb){
            System.out.println("this<-->ortherUsb");
            System.out.println("连接USB3.0设置");
        }
        public  void send1(){
            System.out.println("用wifi发送信息");
        }
        public void receive1(){
            System.out.println("用wifi接收信息");
        }
        public  void send2(){
            System.out.println("用USB3.0发送信息");
        }
        public void receive2(){
            System.out.println("用USB3.0接收信息");
        }
    }
     
    示例:接口不能实例化对象,但接口类型变量可以引用实现的子类对象
    IWifi wifi设备1 = new Mobile();
    Mobile 手机= new Mobile();
        wifi设备1 可以访问的方法:send1()和receive1();
        手机       可以访问的方法:send1(),receive1(),send();
     
    IWifi wifi设备2 = new Dell_Computer();
    IUSB2 设备3 = new Dell_Computer();
    IUSB3 设备4 = new Dell_Computer();
    Computer 电脑 = new Dell_Computer();
    Dell_Computer 笔记本 = new Dell_Computer();
     
        wifi设备2    可以访问的方法:send1()和receive1();
        设备3        可以访问的方法:send2()和receive2();
        设备4        可以访问的方法:send2(),receive2()和connection(参数);
        电脑        可以访问的方法:downLoad()和upLoad();
        笔记本        可以访问的方法:send1(),receive1(),send2(),receive2(),connection(参数),downLoad()和upLoad();
     
     
    抽象类和接口的区别
        共同点与区别:
            1.继承的层次结构都是上层
            2.都不能实例化对象
            3.接口所有方法都是抽象,变量都是public static final类型
                抽象类可以有抽象方法和常量
            4.抽象类只能作为唯一的父类,接口可以实现多个也可以被继承
            5.抽象类由abstract class定义,接口由interface定义
            6.父类与子类是"is a"的关系,父类是抽象类
                父类与子类是"like a"的关系,父类是接口
     
     
     

     
    public interface IComparter<T>{
        /*
        比较t1与t2大小的,
        t1>t2返回正数
        t1<t2返回负数
        t1==t2返回0   
        */
        public abstract int compareto(T t1, T t2);
    }
     
    public class Student implements IComparter<Student>{
        int stuid;
        String stuName;
        double grade;
     
        public int compareto(Student t1, Student t2){
            if(t1.stuid>t2.stuid)
                return 1;
            else if(t1.stuid<t2.stuid)
                return -1;
            else
                return 0;
        }
     
        public int getStuid(){
            return this.stuid;
        }
        public String getStuName(){
            return this.stuName;
        }
        public double getGrade(){
            return this.grade;
        }
        public void setStuid(int stuid){
            this.stuid = stuid;
        }
        public void setStuName(String stuName){
            this.stuName = stuName;
        }
        public void setGrade(double grade){
            this.grade =grade;
        }
     
     
    }
     
  • 相关阅读:
    ArcGIS案例学习笔记4_2
    ArcGIS案例学习笔记4_1
    ArcGIS案例学习笔记3_2
    ArcGIS案例学习笔记1_1
    ArcGIS案例学习1_2
    ArcGIS案例学习笔记2_1
    Window环境下配置Redis服务的方法及查看缓存数据的工具介绍
    C# 递归程序 获取某个节点下的全部子节点
    SQL查询中的in与join效率比较
    解决路由问题造成客户端无法访问服务器的方法之瞒天过海
  • 原文地址:https://www.cnblogs.com/zachary7/p/8191477.html
Copyright © 2020-2023  润新知