zoukankan      html  css  js  c++  java
  • 什么时候用接口?什么时候用抽象类?

     

    什么时候用抽象类?
    如果两个类有共同的方法,但是方法的具体实现又不一样,我们可以把该方法提取出来放在父类里,给父类加上abstract关键字,把父类定义为抽象类。

    例如:程序员工作,项目经理也工作,但是程序工作具体内容是写代码,项目经理工作具体内容是管理项目,所以此时可以把工作定义为一个方法提取出来放在抽象类里,
    让程序员继承工作方法去写代码,让项目经理也继承工作方法去管理项目。

    代码实现:

    /**
     *员工类.
    */
    public abstract class Employee {
        private  String name;
        private int id;
        private  double salary;
       此处省略set/get方法    
        public abstract void work();
    }
    
    /**
     * 程序员类.
     */
    public class Programmer  extends Employee{
        @Override
        public void work() {
            System.out.println(getName()+"正在写代码");
        }
    }
    
    /**
     *项目经理类
     */
     
    public class PM  extends  Employee{
    
        private int bouns;//奖金
        @Override
        public void work() {
            System.out.println(getName()+"在管理项目");
        }
    }
    

    什么时候用接口?
    接口只有常量和方法。
    常量用public static final 修饰,方法用public abstact 修饰

    例子:

    /**
     * 飞行类
     */
    public interface InterfaceFly {
        public abstract void fly();
    }
    
    /**
    *鸟类
     */
    public class Bird implements InterfaceFly{
    
        @Override
        public void fly() {
            System.out.println("鸟自由自在的飞");
        }
    }
    
    /**
    *飞机类
     */
    public class airplane implements InterfaceFly{
        @Override
        public void fly() {
            System.out.println("飞机飞到北京去了");
        }
    }
    

    总结:

    抽象类和其子类是是不是的关系。例如:程序员和项目经理都是员工。
    接口和其子类是具不具备、有没有的关系。例如:鸟和飞机都具体飞的特性(鸟和飞机都有飞的特性)

  • 相关阅读:
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    第三章 熟悉常用的HDFS操作
    数据结构化与保存
    获取全部校园新闻
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    Hadoop综合大作业
    理解MapReduce
  • 原文地址:https://www.cnblogs.com/superming/p/12015654.html
Copyright © 2011-2022 走看看