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
  • 相关阅读:
    从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构
    算法导论第二章小试牛刀
    python网络编程初级
    python基础的几个小练习题
    LeetCode:114_Flatten Binary Tree to Linked List | 将一棵二叉树变成链表的形式 | Medium
    LeetCode:111_Minimum Depth of Binary Tree | 二叉树的最小深度 | Easy
    LeetCode:110_Balanced Binary Tree | 平衡二叉树 | Easy
    LeetCode: 106_Construct Binary Tree from Inorder and Postorder Traversal | 根据中序和后序遍历构建二叉树 | Medium
    mysql中json_object函数的使用?
    mysql中json_remove函数的使用?
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10623753.html
Copyright © 2011-2022 走看看