zoukankan      html  css  js  c++  java
  • Day10_面向对象 接口

    接口

    • 普通类:只有具体实现

    • 抽象类:具体实现和规范(抽象方法)都有!

    • 接口:只有规范!自己无法写方法!约束和实现分离:面向接口编程~

    • 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能..”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人

    • 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。

    • OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

      声明类的关键字是class,声明接口的关键字是interface

    接口的作用

    1. 约束
    2. 定义一些方法,让不同的人实现~ 10----->1(十个人实现一个接口)
    3. 方法都是public abstract
    4. 静态常量public static final
    5. 接口不能被实例化,接口中没有构造方法
    6. implements可以实现多个接口
    7. 必须重写接口中的方法~
    package com.oop.demo09;
    
    //interface定义的关键字,接口都需要有实现类
    public interface UserService {
        //常量~public static final
        int AGE = 99;
        
        //接口中的所有定义其实都是抽象的 public abstract
        void add(String name);
        void delete(String name);
        void update(String name);
        void query(String name);
    }
    
    package com.oop.demo09;
    
    public interface TimeService {
        void timer();
    }
    
    package com.oop.demo09;
    
    //抽象类:extends~
    //类 可以实现接口implements 接口
    //实现了接口的类,就需要重写接口中的方法!
    //多继承~利用接口实现多继承~
    public class UserServiceImpl implements UserService,TimeService{
        @Override
        public void timer() {
    
        }
    
        @Override
        public void add(String name) {
    
        }
    
        @Override
        public void delete(String name) {
    
        }
    
        @Override
        public void update(String name) {
    
        }
    
        @Override
        public void query(String name) {
    
        }
    }
    
  • 相关阅读:
    java面试的那些事
    java多线程实现复制大文件
    java心跳发送
    Java实现缓存(LRU,FIFO)
    java并发阻塞队列
    java之路
    Intellij IDEA中使用Protobuf的正确姿势
    Flink JobManager HA模式部署(基于Standalone)
    查看Flink的Job Graph时的问题
    Flink从Kafka 0.8中读取多个Topic时的问题
  • 原文地址:https://www.cnblogs.com/lemonlover/p/14044610.html
Copyright © 2011-2022 走看看