ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

学习Java的Day03

2020-06-27 14:04:28  阅读:251  来源: 互联网

标签:Java name Day03 void work 接口 id 学习 public


接口的特点!!!!

  • 接口不能创建对象

  • 接口的变量使用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();

    }
}

 

标签:Java,name,Day03,void,work,接口,id,学习,public
来源: https://www.cnblogs.com/ZhuX-H/p/13198107.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有