• Java的抽象类和接口


    java中的抽象类是一个像鬼一样的东西!

    它究竟有什么用!

    举例说明!例子如下:

    public class Main {
        public static void main(String[] args) {
            Person p = new Student();
            p.run();
        }
    }
    
    abstract class Person {
        public abstract void run();//抽象类
    }
    
    class Student extends Person {
        @Override
        public void run() {
            System.out.println("Student.run");
        }
    }

    简单的理解就是为了覆写父类中的方法,但该方法在父类中又没有任何意义,但又想装逼用覆写怎么办!所以就引入了抽象类,它借用关键字abstract,只有方法名没有具体的实现内容。大致就是这么个东西!

    =================================================================================

    哈哈!其实抽象类是有大作用的!

    上面简单介绍了一下抽象类,但在实际中,抽象类方法本质上是定义接口规范的,也就是说在父类中规定方法的名称,让继承它的子类都有相同的接口实现,这样多态就能发挥其真正的威力。

    但是对于单纯的抽象类(只有抽象的东西,其他的什么也没了),每次都要写关键字abstract,就太麻烦了,所以此处引入了接口!

    接口 interface:

    abstract class Person {
        public abstract void run();
        public abstract String getName();
    }
    //下面的代码就是用interface接口替换abstract抽象类的结果
    interface Person {
        void run();
        String getName();
    }

    那么究竟如何用继承的方法来继承接口呢?此处就引入了implements关键字:

    class Student implements Person {
        private String name;
    
        public Student(String name) {
            this.name = name;
        }
    
        @Override
        public void run() {
            System.out.println(this.name + " run");
        }
    
        @Override
        public String getName() {
            return this.name;
        }
    }

    接口还有一个重要的作用!就是可以实现子类继承多个父类的情况!在Java中,一个类只能继承自另一个类,不能从多个类继承。但是,一个类可以实现多个interface,例如:

    class Student implements Person, Hello { // 实现了两个interface 同时继承了Person,Hello
      ... }

    关于接口的继承!一个接口也可以继承另一个接口,和普通的继承一样!例如:

    interface Hello {
        void hello();
    }
    
    interface Person extends Hello {
        void run();
        String getName();
    }

    合理的接口使用,提高代码的复用,是牛牛的工程师必备的技能。。。。。。

  • 相关阅读:
    “工业4.0”下的可视化工厂建设方案
    logstash 发送慢页面到zabbix告警
    windows 挂载linux nfs
    zabbix报警把特定的应用集发送给developer
    logstash 判断接口响应时间发送zabbix告警
    zabbix 对于logstash告警连续发邮件
    zabbix 发送邮件配置
    zabbix如何选择适合的监控类型(107)
    logstash 发送zabbix告警
    zabbix 添加自定义key
  • 原文地址:https://www.cnblogs.com/lipu12281/p/12172464.html
Copyright © 2020-2023  润新知