zoukankan      html  css  js  c++  java
  • 接口(interface)

    Final:

      final的变量的值不能够被改变

        final的成员变量,final的局部变量(形参)

      final的方法不能被重写

      final的类不能被继承

    接口:

      1.接口(interface)是抽象方法和常量值的定义的集合

      2.从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,

         而没有变量和方法的实现

      3.接口定义举例:

    public interface Runner{
              public static final int id = 1;
            
             public  void start();
             public  void run();
             public  void stop();
    }
    

     接口特性:

      1.多个无关的类可以实现同一个接口

      2.一个类可以实现多个无关的接口

      3.与继承关系类似,接口与实现类之间存在多态性。

      4.接口中声明属性默认为public static final的,也只能是public static final的

      5.接口可以继承其它的接口,并添加新的属性和抽象方法

      6.举例

    interface Singer {
        public void sing();
        public void sleep();
    }
    
    interface Painter {
        public void paint();
        public void eat();
    }
    
    class Student implements Singer {
        private String name;
        
        Student(String name) {
            this.name = name;
        }
        
        public void study() {
            System.out.println("studying");
        }
        
        public String getName() {
            return name;
        }
        
        public void sing() {
            System.out.println("student is singing");
        }
        
        public void sleep() {
            System.out.println("student is sleeping");
        }
    }
    
    class Teacher implements Singer,Painter {
        private String name;
        
        public String gerString() {
            return name;
        }
        
        Teacher(String name) {
            this.name = name;
        }
        
        public void teach() {
            System.out.println("teaching");
        }
        
        public void sing() {
            System.out.println("teacher is singing");
        }
        
        public void sleep() {
            System.out.println("teacher is sleeping");
        }
        
        public void paint() {
            System.out.println("teacher is painting");
        }
        
        public void eat() {
            System.out.println("teacher is eating");
        }
        
    }
    
    public class testInterface {
        public static void main(String[] args) {
            Singer s1 = new Student("le");
            s1.sing();
            s1.sleep();
            
            Singer s2 = new Teacher("steven");
            s2.sing();
            s2.sleep();
            
            Painter p1 = (Painter)s2;
            p1.paint();
            p1.eat();
        }
    }
    
    
    /*
    运行结果:
    student is singing
    student is sleeping
    teacher is singing
    teacher is sleeping
    teacher is painting
    teacher is eating
    */
  • 相关阅读:
    201621123060《JAVA程序设计》第九周学习总结
    201621123060《JAVA程序设计》第八周学习总结
    网络1712--c语言第二次作业总结
    Linux笔记
    Python-Flask框架之"图书管理系统"项目,附详解源代码及页面效果截图
    CentOS7防火墙firewall
    Linux文件处理三剑客(grep、sed、awk)
    OpenStack、虚拟机以及和当前流行的k8s、Docker四者之间的关系
    反向代理与正向代理的区别
    本地虚拟机在NAT网络连接模式下如何设置才可以访问外网以及使用Xshell远程连接
  • 原文地址:https://www.cnblogs.com/wblyuyang/p/2455616.html
Copyright © 2011-2022 走看看