• 从零开始学java(接口)


    接口

      前面讲到了类的继承与多态,其实接口也很类似与类的继承与多态,不同于类,接口是可以多个实现的,如果把类与类继承比喻为父与子,那么接口就是实现类的一种能力。比如,一个人具有吃饭的能力,我们写一吃饭的接口,这个接口只要是人这个类派生出的子类都可以去实现它。所以一个子类只能继承一个父类,但是一个类可以实现多个接口。来看代码。

    /**
     * 定义一个Eat接口 
     * @author GMZ
     * 定义接口的关键字为 interface
     */
    public interface Eat {
        
        public void eat();
    }
    /**
     * 定义一个Run接口 
     * @author GMZ
     * 定义接口的关键字为 interface
     */
    public interface Run {
        
        public void run();
    }
    public abstract class Parent implements Eat,Run {
        protected String name;
    
        public Parent(String name) {
            this.name = name;
        }
    }
    /**
     * 写一个实现类 继承Parent
     * @author GMZ
     * 因为Parent类implements接口所以,实现类必须实现接口的方法
     */
    public class Lily extends Parent {
        
        public Lily(String name) {
            super(name);
        }
    
        @Override
        public void eat() {
            System.out.println(super.name+"-----------在吃饭!");
        }
    
        @Override
        public void run() {
            System.out.println(super.name+"-----------在疯跑!");
        }
    
    }
    /**
     * 写一个做事的代理类
     * @author GMZ
     *
     */
    public class DoProxy {
    
        public static void run(Parent parent){
            parent.run();
        }
        
        public static void eat(Parent parent){
            parent.eat();
        }
    }
    public static void main(String[] args) {
            
            DoProxy.run(new Lily("lily"));
            DoProxy.eat(new Lily("lily"));
        }

    接口有几个特点:

      1.接口不可以被实例化

      2.实现类必须实现接口的所有方法,否则必须将其定义为抽象类(如上图代码)。

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

      4.接口中的变量都是静态常量

      5.接口中的方法都是全局抽象方法,接口中没有构造方法

    接口的总结:

      接口表示一种约定,接口表示一种能力,接口体现了约定和实现相分离的原则。

      抽象类利于代码的复用,接口利于代码的维护

      通过面向接口编程:可以降低代码之间的耦合(类的继承是一种强耦合),提高代码的可扩展性和维护性

  • 相关阅读:
    记录一次有意思的XSS过滤绕过2
    2018年总结
    记录一次Oracle注入绕waf
    记录一次有意思的XSS过滤绕过
    绕过阿里云waf进行SQL注入
    CRLF在过滤XSS语句后打Cookie方式
    JavaWeb之商品查看后历史记录代码实现
    Mysql注入小tips --持续更新中
    JDK动态代理(Proxy)的两种实现方式
    ajax 异步刷新
  • 原文地址:https://www.cnblogs.com/Cgosling/p/9943804.html
Copyright © 2020-2023  润新知