zoukankan      html  css  js  c++  java
  • java 接口

    接口是一种特殊的抽象类,接口只提供了方法的原形,当没有具体的方法实现。子类必须提供父类中抽象方法的实现方式。接口与抽象类一样,也能定义抽象的方法,并且接口中只能包含抽象的方法,不能有常量、初始化块和构造函数。就像手机模型,只是模型只是壳子

    package text5;
    
    interface Student1 {
        int clas = 0604;
        void learning();
        void eat();
        void sleep();
    }
    
    class Student implements Student1 {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.learning();
    }
        @Override
        public void learning() {
            System.out.println("学生在学习");
    
        }
    
        @Override
        public void eat() {
            // TODO Auto-generated method stub
            System.out.println("学正在吃饭");
        }
    
        @Override
        public void sleep() {
            // TODO Auto-generated method stub
            System.out.println("学生在睡觉");
        }
    
    }
    View Code

     接口的方法都是抽象类,并没有方法具体的实现,接口中的方法必须由接口的实现类来实现。

    java接口的归纳:

    1.java接口中的成员变量,默认都是public,static,final型的,而对于public static final可以省略,接口中的成员变量为常量,建议全部使用大写,单词之间用"_"分隔

    2.接口方法默认是public abstract型的,可省略,Java种方法没有方法体不能实例化

    3.java接口中只能包含public static final类型的成员变量和public abstract 类型的成员方法

    使用接口设计:

    1.防盗门功能

    2.手机功能

    3.组装一台计算机

    4.打印机打印

    门有开关两种功能,锁有上锁开锁两功能,防盗门可以继承门同时继承锁么?

    将门定义为抽象类,锁定义为接口,防盗门继承门,实现锁的接口

    接口特性:

    1.不可被实例化

    2.实现类必须实现接口的所有方法

    3.实现类可以实现多个接口

    4.接口中的变量都为静态变量‘

    防盗门是个门,is a 关系

    防盗门有个锁:has a 关系

    Door:

    package Locker;
    
    public abstract class Door {
        public abstract void open();
        public abstract void close();
    }
    View Code

    TheftproofDoor;

    package Locker;
    
    public class TheftproofDoor extends Door implements Lock {
    
        @Override
        public void lockup() {
            // TODO Auto-generated method stub
            System.out.println("关锁");
        }
    
        @Override
        public void lockopen() {
            // TODO Auto-generated method stub
            System.out.println("开锁");
        }
    
        @Override
        public void open() {
            // TODO Auto-generated method stub
            System.out.println("开门");
        }
    
        @Override
        public void close() {
            // TODO Auto-generated method stub
            System.out.println("关门");
        }
    
    }
    View Code

    Lock:

    package Locker;
    
    public interface Lock {
        void lockup();
    
        void lockopen();
    }
    View Code

    Test;

    package Locker;
    
    public class Test {
        public static void main(String[] args) {
            TheftproofDoor door = new TheftproofDoor();
            door.close();
            door.lockup();
            door.lockopen();
            door.open();
        }
    
    }
    View Code
  • 相关阅读:
    iOS BUG整理-记录我近期视频开发遇到的问题
    iOS 翻译-UIWebView的基本简介-官方文档翻译
    iOS 翻译-Xcode使用-文档翻译
    4.redis设计与实现--跳跃表
    3.redis设计与实现--字典
    2.redis设计与实现--链表
    1.redis设计与实现--简单动态字符串
    12.编码问题讨论
    11.nginx upload module + python django 后台 实现视频上传与切片
    10.nginx+ffmpeg上搭建HLS切片
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10623753.html
Copyright © 2011-2022 走看看