抽象类接口的理解

鲁迅的一句话:总之岁月漫长,然而值得等待。

/*
抽象类中的面试题:
1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成。
2.abstract关键字不能和哪些关键字共存:
   static final private

接口的概述与特点:
对外提供规则的都是接口,Java中interface为定义接口的关键字。
类实现接口用implements关键字。
接口不能实例化,用多态的方式来实例化。
接口的子类要重写接口中的所有抽象方法。

接口中的成员特点:
1.成员变量只能是常量,并且是静态的公共的,public static final。
2.构造方法:接口没有。
3.成员方法:只有抽象方法,public abstract。

类、接口之间的联系:
1.类与类:继承关系,只能单继承,可以多层继承。
2.类与接口:实现关系,能多实现,可以继承一个类的同时实现多个接口。
3.接口与接口:继承关系,可以单继承,也可以多继承。

抽象类和接口的理念:
1.抽象类被继承体现的是"is a"的关系,抽象类中定义的是该继承体系中的共性功能。
2.接口被实现体现的是"like a"的关系,接口中定义的是该实现体系中的扩展功能。

*/

/*
interface InterA{
    abstract void printA();
}
interface InterB{
    abstract void printB();
}
interface InterC extends InterA,InterB{

}*/
class day6{
    public static void main(String[] args) {
        new Dog(16,"老大").eat();
        new Dog(18,"老二").sleep();
        new Cat(13,"花花").eat();
        new Cat(12,"草草").sleep();
        new Cat(12,"草草").jump();
    }
}
/*
class demo implements InterC{
    public void printA(){
        System.out.println("接口A");
    }
    public void printB(){
        System.out.println("接口B");
    }
}
*/

interface Jump{
    public abstract void jump();
}

abstract class Animal{
    private int age;
    private String name;
    public Animal(){

}
    public Animal(int age,String name){
        this.age=age;
        this.name=name;
    }
    abstract void eat();
    abstract void sleep();
    void setAge(int age){
        this.age=age;
    }
    void setName(String name){
        this.name=name;
    }
    int getAge(){
        return this.age;
    }
    String getName(){
        return this.name;
    }
}
class Dog extends Animal{
    public Dog(int age,String name){
        super(age,name);
    }
    void eat(){
        System.out.println(this.getAge()+"的"+this.getName()+"成功吃饭");
    }
    void sleep(){
        System.out.println(this.getAge()+"的"+this.getName()+"睡觉");
    }
}
class Cat extends Animal implements Jump{
    public Cat(int age,String name){
        super(age,name);
    }
    void eat(){
        System.out.println(this.getAge()+"的"+this.getName()+"成功吃饭");
    }
    void sleep(){
        System.out.println(this.getAge()+"的"+this.getName()+"睡觉");
    }
    public void jump(){
        System.out.println(this.getAge()+this.getName()+"学会了跳高");
    }
}

小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。相关推荐

  1. 小白学JAVA,与你们感同身受,JAVA---day5:关于多态的理解和分析。鲁迅的一句话:总之岁月漫长,然而值得等待。

    鲁迅的一句话:总之岁月漫长,然而值得等待. 至于是不是他说的,就看大家的了. /* 多态:事物存在的多种形态. 多态的前提: 1.要有继承关系. 2.要有方法的重写. 3.要有父类引用指向子类对象. ...

  2. 课程设计-毕业设计-JAVA画板课程设计---总之岁月漫长,然而值得等待。

    在校大学生的一份辛苦劳动成果写了一个小画板程序. 任务书... 1 1.1设计内容... 1 1.2设计任务及具体要求... 1 1.3软件开发运行环境.. 1 2  本组课题... 1 2.1课题. ...

  3. 【JVM从小白学成大佬】4.Java虚拟机何谓垃圾及垃圾回收算法

    在Java中内存是由虚拟机自动管理的,虚拟机在内存中划出一片区域,作为满足程序内存分配请求的空间.内存的创建仍然是由程序猿来显示指定的,但是对象的释放却对程序猿是透明的.就是解放了程序猿手动回收内存的 ...

  4. 初始Java Java SE 包,继承,组合,多态,抽象类,接口

    目录 包 1.静态导入 2.将类放到包中 3.包的访问权限控制 继承 基本语法: 注意事项: protected 关键字 final 关键字 组合 多态 向上转型: 动态绑定 方法重写 重写的规则 : ...

  5. java ee2019 11 5关于多态 抽象类 接口

    1 猫狗案例 多态版(继承版) class Animal{//成员方法private String name ; private int age ;//无参构造public Animal(){}//有 ...

  6. 小白学Django第九天| Cookie和session的那些骚操作

    点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...

  7. 小白学Django第十天| 模板的知识全部给你总结好了!

    点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...

  8. 零基础小白学Java难度大不大

    零基础小白学Java难度大不大?有很多人都是非常关心这个问题的,如今java在IT互联网行业的快速发展,引起了很多人的注意,那么,哪些人适合入行Java?零基础学习Java难度大吗?下面,小编就为大家 ...

  9. 零基础学Java需知:Java小白入门解疑大全

    Java行业在互联网发展迅速的今天是一日比一日发展的好,Java语言已经成为世界上应用较广泛的编程语言.学Java已经成为编程语言中的潮流,越来越多的人有意向到Java行业中发展. 其实,零基础学习J ...

最新文章

  1. 垃圾热解气化工艺的电气、仪表及控制系统设计
  2. 如何使用IcoMoon字体图标
  3. 7 centos 源码安装samba_Centos-7安装zabbix
  4. Jquery实现类似百度的搜索框
  5. 【助教】关于代码提交相关注意事项
  6. activity任意节点跳转
  7. 【经验分享】linux交叉编译 - openssl动态库
  8. sqlserver management studio 2014 升级2016_画质提升音质更佳:Insta360影石ONE R迎来最强升级...
  9. win10企业版永久关闭自动更新
  10. 【C#】开发可以可视化操作的windows服务
  11. 特征选择算法之ReliefF算法python实现
  12. 批量修改文件夹下所有文件名称
  13. 输入一英文字符串(字符串长度限制在200个字符以内),单词间仅用一个或多个空格间隔(即没有标点符号),编写程序将此字符串中第1个最长的单词输出。 输入输出样例: memory has no re
  14. 果木浪子吉他入门零基础教学(70课时)
  15. Java实现 定义一个名为Rectangle的类表示矩形 求面积周长
  16. Hark的数据结构与算法练习之堆排序
  17. 《当程序员的那些狗日日子》(八)床上等你
  18. 【机器翻译】《Gradient-guided Loss Masking for Neural Machine Translation》论文总结
  19. 北京办理居住证的全流程
  20. 代扣代收 VS 代付代发

热门文章

  1. Linux内存,先看这篇文章
  2. 一个看似是系统问题的应用问题的解决过程
  3. python语言中strike_Python学习笔记
  4. 智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习
  5. LeetCode 5832. 构造元素不等于两相邻元素平均值的数组
  6. 05.序列模型 W1.循环序列模型(作业:手写RNN+恐龙名字生成)
  7. LeetCode MySQL 1511. Customer Order Frequency
  8. LeetCode 269. 火星词典(拓扑排序)
  9. LeetCode 1176. 健身计划评估(滑动窗口)
  10. numpy 随机数_TF+Numpy减少随机性的影响