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

    接口是抽象方法和常量值得定义的集合。

    从本质上讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。

    接口的特性

    • 接口可以多重实现
    • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
    • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
    • 接口可以继承其它的接口,并添加新的属性和抽象方法。
    • 多个无关的类可以实现同一个接口
    • 一个类可以实现多个无关的接口
    • 与继承关系类似,接口与实现类之间存在多态性

    《modifier》class《name》extends 《superclass》 implements 《interface》

     

     

     

    接口定义举例

    public interface Runner {
        public static final int id = ; //前面public static final写不写都一样 
    
        public void start();
        public void run();
        public void stop();
    }
    

     接口举例如下

    public class TestInterface{
    	public static void main(String[] args) {
    		Singer s1 = new Student("lele");
    		s1.sing();s1.sleep();
    		Singer s2 = new Teacher("laoshi");
    		s2.sing();s2.sleep();
    		Painter p = (Painter)s2;
    		p.paint();p.eat();
    	}
    }
    
    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;
    	Teacher(String name) {this.name = name;}
    	public String getName() {return name;}
    	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");
    	}
    }
    

    内存图如下

     

  • 相关阅读:
    AFNetworking 3.0中调用[AFHTTPSessionManager manager]方法导致内存泄漏的解决办法
    UITableView自动计算cell高度并缓存
    iOS 10 应用内跳转到系统设置
    iOS 系统通知
    UITableViewDataSource TableView數據源協議
    HADOOP操作权限问题
    Echarts简单图表
    hadoop常见错误解决方法
    sqoop安装与简单实用
    hive的内置函数和自定义函数
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11276529.html
Copyright © 2011-2022 走看看