首页 > 编程语言 >java中abstract详解

java中abstract详解

时间:2022-11-26 23:03:38浏览次数:41  
标签:java 子类 abstract 详解 抽象 抽象类 父类 方法

 Abstract(抽象)可以修饰类、方法 

如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。 Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。 Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。 Final和abstract永远不会同时出现。  

当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。  

注意比较: 
private void print(){};此语句表示方法的空实现。 
Abstract void print(); 此语句表示方法的抽象,无实现。  

如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。 反之,如果一个类为抽象类,那么其中可能有非抽象的方法。  

如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。因为当一个非抽象类继承一个抽象方法的时候,本着只有一个类中有一个抽象方法,那么这个类必须为抽象类的原则。这个类必须为抽象类,这与此类为非抽象冲突,所以报错。  

所以子类的方法必须覆盖父类的抽象方法。方法才能够起作用。 

只有将理论被熟练运用在实际的程序设计的过程中之后,才能说理论被完全掌握! 

为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此时可将父类定义成abstract类。如果没有定义抽象的父类,那么编译会出现错误。  
Abstract和static不能放在一起,否则便会出现错误。(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。)



标签:java,子类,abstract,详解,抽象,抽象类,父类,方法
From: https://blog.51cto.com/u_11990719/5889237

相关文章

  • Java基础——继承(Extends)
    使用extends(继承)有什么好处?使用继承可以实现代码的重用,通过继承,子类可以继承父类的成员变量及成员方法,同时子类也可以定义自己的成员变量和成员方法。届时,子类将具有父类......
  • java——@ApiOperation注解
    @RequestMapping(value="/add",method=RequestMethod.POST)@ApiOperation(value="添加用户")publicsynchronizedBaseResponse<Long>addUser(@RequestBody......
  • javascript 执行上下文
    <script>//执行上下文,顺序执行到此出会产生一个全局的执行上下文(ECG),并把全局ECG放到ECS(执行上下文栈)中//VO:GO(globanobject)对浏览器而言,window即......
  • /etc/hosts文件详解
    linux小知识:etc下的host配置文件们原创 龙叔18岁 龙叔运维 2022-10-1522:56 发表于广东收录于合集#linux17个作为linux运维 对etc这个目录必然不会陌生,本......
  • AbstractOwnableSynchronizer 类
    AbstractOwnableSynchronizer类此类提供了创建锁和相关同步器的基础,这些锁和同步器可能需要所有权的概念。AbstractOwnableSynchronizer类本身不管理或使用此信息。然......
  • Java控制台输出进度条
    源码packagecom.yang.restdemo.util;importjava.util.concurrent.TimeUnit;importjava.util.stream.Stream;/***@description:进度条*@author:YangJia......
  • 用JStack和Top分析Java进程CPU占用率
    在知道哪个Java进程CPU占用率过高以后:1.使用命令jstackPID命令打印出CPU占用过高进程的线程栈,例如jstack12012>12012.txt2.使用top-H-pPID命令查看对应进程是哪......
  • Java学习七
    一.小结1.使用二维数组来存储表格2.可以使用以下语法来声明二维数组变量:元素类型[][]数组变量3.可以使用以下语法来创建二维数组变量:new元素类型[行的个数][列的......
  • jdwp+rinetd 进行java 容器应用的远程调试
    实际上就是一个玩法,实际上因为jdwp是基于tcp协议的,我们可以使用任何合适的tcplb工具解决(iptables也是可以的)只是rinetd使用起来还是比较简单的,同时包含了一些简单的......
  • 重点--自测可以----Java实现微信公众号自动回复
    背景最近准备搭建自己的博客系统,有些软件或资料的下载链接放在网盘中,为了方便下载,同时可以将用户导流到公众号上,因此准备用Java实现微信公众号自动回复的功能准备工作微信......