文章目录

什么是java中的抽象方法

抽象方法是一种特殊的方法:

它只有声明,而没有具体的实现

例如:

abstract void eat();

上面定义了一个方法 eat() ,有修饰关键词 abstract ,而且只有方法签名,没有方法的具体实现,

这就是一个java中的 抽象方法.

我们可以看到关键词 abstract 前面再没有任何修饰关键词 [ public , protected 或者 private ]

为什么不能有修饰关键词,我们留到下面再讲.

什么是java中的抽象类

一个类含有抽象方法,则称这个类为抽象类

抽象类必须由关键词 abstract 修饰;

我们来看一个抽象类的示例:

abstract class Person{

abstract void eat();

}

包含抽象方法 eat() ,并且类前面有关键词 abstract 修饰,所以上面的类就是一个抽象类.

这里可能有疑问,抽象类必须要包含抽象方法吗?如果没有抽象方法呢?

abstract class Person{

}

这也是一个抽象方法,但是这种空的抽象类有什么意义呢?

因为抽象方法只是一个方法签名,没有具体方法实现,所以这种抽象类必须由子类继承才有存在的意义,不能直接创建类的实例;

因为继承,其中的抽象方法会被子类重写;

所以没有实现继承的抽象类是没有意义的,没有定义任何抽象方法的抽象类更没有意义.

因为抽象类必须要实现继承,所以类前面缺省的访问修饰符默认 public 不能是 private ,可以不写直接省略(缺省 public)

什么是java 中的接口

接口是一种特殊的抽象类;

接口中没有变量,只有public static final修饰的静态常量,三个修饰符可以省略;

接口中所有的方法都是抽象方法,且默认就是public权限;

java中使用 interface 来声明接口:

interface Person{

void eat();

String getName();

}

接口中的方法全部只有定义而没有被实现;

所有方法默认都是 public abstract 的.

一个类使用 implements 关键词来实现接口

class Child implements Person{

private String name;

public Child(String name){

this.name = name;

}

@Override

public void eat(){

System.out.println(this.name + " 用勺子吃饭");

}

@Override

public String getName(){

return this.name;

}

}

类和接口的继承

Java类的继承是单一继承,一个类只能继承一个父类;

Java类却可以实现多个接口;

为什么不能继承多个父类?

假如多个父类同时存在签名相同的方法,那多继承后,子类到底该实现哪一个父类的同名方法呢?

为什么可以实现多个接口?

接口中全都是抽象方法,只有签名没有方法实现,所以就算有同名的抽象方法,子类重写该方法,实现自己的方法内容即可,完全不受影响.

java画板抽象类_java 中的 抽象方法 抽象类 和 接口有啥瓜葛相关推荐

  1. java cloneable 用途_java中的clon()和cloneable接口浅析(转)

    今天看了一上午关于clone()和cloneable interface 的文章,我推荐一篇供大家参考学习. 蓝色为我的翻译,有不当之处,大家多多包涵! clone() and the Cloneab ...

  2. java.util接口_Java 8中java.util.function包中的谓词和使用者接口

    java.util接口 在上一篇文章中,我写了关于Function接口的内容 ,它是java.util.package的一部分. 我还提到了Predicate接口,它是同一包的一部分,在这篇文章中,我 ...

  3. Java 8中java.util.function包中的谓词和使用者接口

    在我以前的文章中,我写了关于Function接口的内容 ,它是java.util.package的一部分. 我还提到了Predicate接口,它是同一包的一部分,在这篇文章中,我将向您展示如何使用Pr ...

  4. java 抽象类_java中的抽象类

    普通类可以直接产生实例化对象,并且在普通类之中可以包含有构造方法.普通方法.static方法.常量.变量的内容.而所谓的抽象类就是指在普通类的结构里面增加抽象方法的组成部分,抽象方法指的是没有方法体的 ...

  5. Java有关于面向对象中的【抽象类、抽象方法和多态】的解释(初学者)

    这里写自定义目录标题 前言 Java中的抽象 基本类 && 基本方法 抽象类 && 抽象方法 抽象类的公有抽象方法 子类的实现父类公有方法 多个子类中与众不同的私有方法 ...

  6. java中什么是声明抽象_java中什么是抽象类?抽象类的声明

    详细内容 本篇文章给大家带来的内容是介绍java中抽象类,让大家对抽象类有一个简单的了解,知道抽象类是什么,怎么声明.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 在我们介绍抽象类 ...

  7. java 抽象类继承抽象类_Java之继承、抽象类、接口篇

    一.继承(extends) 什么是继承? 继承是对现实生活中的"分类"概念的一种模拟. 狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"继承" ...

  8. java集合AbstractMap_Java 集合中的 AbstractMap 抽象类

    Java 集合中的 AbstractMap 抽象类 jdk1.8.0_144 AbstractMap 抽象类实现了一些简单且通用的方法, 本身并不难但在这个抽象类中有两个方法非常值得关注, keySe ...

  9. java 模板方法设计模式_Java中的模板方法设计模式

    java 模板方法设计模式 模板方法是一种行为设计模式 ,用于创建方法存根并将某些实现步骤推迟到子类. 模板方法定义了执行算法的步骤,它可以提供默认实现,该实现对于所有或某些子类可能是通用的. 让我们 ...

最新文章

  1. 异常记录(CPU产生的异常和软件模拟产生的异常)
  2. 我的docker随笔7:docker容器与主机之间文件拷贝
  3. Python文件管理模块封装,提供大家直接调用(最全最好用)
  4. FBI 连续第三次发布关于国家黑客利用 Kwampirs 发动全球供应链攻击的警告
  5. 管理感悟:下结论的套路
  6. 硬件负载均衡设备介绍
  7. booktest-17 自定义过滤器 模板标签没有除法和取余函数
  8. 超全智能 电子设备cc0高清摄影图片素材网站整理
  9. 非常有用的sql脚本
  10. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报
  11. hystrix熔断器之配置
  12. C语言*p、p,p的区别,**p的含义
  13. 车辆重识别综述(2021年非专业总结)
  14. Python文件类型识别——python-magic
  15. 授受不亲?中国古代男女浪漫社交
  16. iReport生成报错Font ‘楷体‘ is not available to the JVM.
  17. 如何让你的手机U盘集PE工具、系统安装、无线破解等众多功能于一身
  18. 东财《货币银行学X》综合作业
  19. 《例说51单片机(C语言版)(第3版)》——1-2 8051基础知识
  20. 近似平面点云一般特征——粗糙度

热门文章

  1. 汉堡王什么汉堡好吃_315 曝光用过期面包做汉堡:汉堡王到底怎么了?
  2. 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
  3. 【数据结构总结】第七章 查找
  4. 近似求PI(15 分)
  5. 每日程序C语言34-利用指针将输入的三个数排序
  6. python定义构造函数、包括颜色价格品牌_《Python编程与算法基础教程》(第二版),蒋洪宇,青松,第9章:课后练习,程序设计,版江红余,第九章,习题,答案...
  7. python加载dll函数失败_Python:使用ctypes访问DLL函数 – 按函数* name *访问失败
  8. python处理字符串效率_Python字符串搜索效率
  9. Java黑皮书课后题第1章:1.10(以英里计的平均速度)假设一个跑步者45分30秒跑了14千米。编写一个程序显示以每小时多少英里为单位的平均速度值
  10. C语言学习之输入两个正整数m和n,求其最大公约数和最小公倍数。