zoukankan      html  css  js  c++  java
  • 学习Java的Day03

    接口的特点!!!!

    • 接口不能创建对象

    • 接口的变量使用public static final修饰,如果不写默认添加;

    • 接口的方法为public abstrict,如果不写默认添加;

    • 子类必须重写接口中所有的抽象方法后,才能创建对象;

    • 如果子类不能够重写所有的抽象方法,子类必须定义成抽象类;

     

    接口和抽象类的区别!!!!!

    • 相同点
      • 都是位于继承的顶端,用于被其他类继承;
      • 都不能直接实例化对象;
      • 都包含了抽象方法,其他子类都必须覆写这些抽象方法;
    • 区别
      • 抽象类可以定义非抽象方法,避免子类重复实现这些方法,提高代码的复用性,接口只能包含抽象方法;
      • 一个类只能继承一个直接父类,却可以实现多个接口。(接口弥补了Java的单继承)
      • 类与类之间只能是单继承,接口与接口之间可以是多实现;
      • 抽象类可以定义普通的成员变量,接口只能定义 public static final 的成员变量;

      

    练习题:

    定义一个类是员工,员工有id和name属性,有一个方法是eat调用eat所有员工输出吃饭,有一个抽象方法是work,不同的员工工作的内容不同,定义3个类,程序员,老师,网管,分别调用work的时候”id为xx的name写代码”,”讲课”,”拉网线”。
    public abstract class Employee {
        private int id;
        private String name;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void eat() {
            System.out.println("该吃饭");
        }
    
        public abstract void work();
    
    }
    
    class programmer extends Employee {
    
        @Override
        public void work() {
            System.out.println("id : " + getId() + " 的 " + getName() + "写代码");
        }
    
    }
    class Teacher extends Employee {
    
        @Override
        public void work() {
            System.out.println("id : " + getId() + " 的 " + getName() + "讲课");
        }
    
    }
    class Managert extends Employee {
    
        @Override
        public void work() {
            System.out.println("id : " + getId() + " 的 " + getName() + "拉网线");
        }
    
    }
    class  Test {
        public static void main(String[] args) {
    
            programmer pro = new programmer();
            pro.setId(001);
            pro.setName("zxh" );
            pro.work();
            pro.eat();
    
        }
    }
  • 相关阅读:
    20155313 2016-2017-2《Java程序设计》课程总结
    java第四次实验
    java第五次实验
    20155313 实验三《Java面向对象程序设计》实验报告
    20155313 2016-2017-2 《Java程序设计》第十周学习总结
    20155311《Java程序设计》实验五(网络编程与安全)实验报告
    学号20155311 2016-2017-2《Java程序设计》课程总结
    20155311高梓云补交的Mypc课下实践
    20155311 《Java程序设计》实验四 (Android程序设计)实验报告
    20155311 实验三 敏捷开发与XP实践 实验报告
  • 原文地址:https://www.cnblogs.com/ZhuX-H/p/13198107.html
Copyright © 2011-2022 走看看