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
    */
  • 相关阅读:
    Console命令,让js调试更简单
    Java练习 SDUT-2192_救基友记2
    Java练习 SDUT-2246_时间日期格式转换
    SDUT-3362_村村通公路
    SDUT-2139_从起始点到目标点的最短步数(BFS)
    SDUT-3361_迷宫探索
    SDUT-2138_判断可达性
    SDUT-2107_图的深度遍历
    SDUT-2124_基于邻接矩阵的广度优先搜索遍历
    Java练习 SDUT-2787_加密术
  • 原文地址:https://www.cnblogs.com/wblyuyang/p/2455616.html
Copyright © 2011-2022 走看看