当前位置: 首页 > news >正文

java thread类是抽象类_抽象类详解

一,抽象类介绍

1.1 什么是抽象

抽象类:简单点来说就是不能实例化的类(或者说不能用new方法实例化的类)抽象类有点类似“模板的作用,其目的是根据他的格式来创建和修改新的类。(比如:盖房子首先有要画图纸,在照着图纸进行造房子。图纸就好比如抽象类,建房子就好比如抽象类派生的子类)

1.2 抽象方法

抽象方法:含有Abstract关键字开头的方法叫做抽象方法。注意抽象方法声明中修饰符static和abstract不能同时使用。抽象方法没有方法体,否则会报错。

原因解释:

1. 抽象方法为什么没有方法体:抽象类的抽象方法需要继承它的子类来实现,如果有方法体,子类去玩吗?本来抽象类起到的类似于”模板”的作用,好比于一种参考。

2. 抽象方法为什么abstract和static不能同时使用:这要探讨static修饰符的特性了,静态方法属于整个类的,静态方法只能访问静态成员变量或调用静态的成员方法。静态方法和静态属性可以被继承,但是没有被重写而是被隐藏。(这个下篇文章我会讲解),抽象类被继承后抽象方法会重写,而静态方法会被隐藏没有重写。

1.3 两者之间的关系

关系:含有抽象方法的类叫做抽象类,抽象类不一定还有抽象方法。

1.4 抽象类的特性

抽象类本能被实例化不能new

抽象类的抽象方法abstract和static不能同时使用

抽象类中可以有属性, 可以存在普通方法,抽象类一定有构造方法,其目的是对属性的初始化。

抽象类不能别final声明(final定义的类没有子类)

可以直接调用抽象类中的静态方法(静态方法属于类的本身)

1.5 代码演示:

abstract public class A {

public int a=10;

public A()

{

}

public void print()

{

System.out.println("抽象类中的普通方法");

}

public static void printStatic()

{

System.out.println("抽象类中的静态犯法");

}

public static void main(String[] args) {

A.printStatic();

A a=new A();//对抽象类进行实例化

}

}

报错

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

Cannot instantiate the type A

at com.demo.Abstract.Test.A.main(A.java:15)

相关文章:

  • 摘要认证 java_摘要认证及实现HTTP digest authentication
  • ssdp java_SSDP 简单服务发现协议
  • suse tomcat mysql_suse 安装jdk和tomcat工作记录
  • javascript java 语法_JavaScript
  • java.lang.nullpointerexception:group_为什么会出现java.lang.nullpointerexception错误
  • java数组查找指定元素_Java在数组中查找指定元素的方法
  • k8s mysql volume_k8s实践(七):存储卷和数据持久化(Volumes and Persistent Storage)
  • java 能够完成多个http请求并回应_Java Web请求与响应实例详解
  • mysql 交叉查询_MySQL连接查询,内连接,外连接,全连接,交叉连接
  • java中 springurl_基于SpringMVC中的路径参数和URL参数实例
  • java句子倒序_Java实现英文句子中的单词顺序逆序输出的方法
  • JAVA边学边练答案_Struts2边学边练(1)-HelloWorld
  • php gzip css 乱码,php使用gzip压缩传输js和css文件的方法
  • php静态检测工具,PHP静态代码分析工具,可以检测未捕获的异常?
  • php 挂起一个请求一直执行,在后台运行进程挂起PHP pag
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [NodeJS] 关于Buffer
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CSS魔法堂:Absolute Positioning就这个样
  • Fundebug计费标准解释:事件数是如何定义的?
  • LeetCode算法系列_0891_子序列宽度之和
  • magento2项目上线注意事项
  • Python3爬取英雄联盟英雄皮肤大图
  • uni-app项目数字滚动
  • Windows Containers 大冒险: 容器网络
  • 初识MongoDB分片
  • 动态魔术使用DBMS_SQL
  • 番外篇1:在Windows环境下安装JDK
  • 分享几个不错的工具
  • 技术:超级实用的电脑小技巧
  • 讲清楚之javascript作用域
  • 前端技术周刊 2019-01-14:客户端存储
  • 小程序button引导用户授权
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​用户画像从0到100的构建思路
  • # include “ “ 和 # include < >两者的区别
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (day6) 319. 灯泡开关
  • (超详细)语音信号处理之特征提取
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (免费分享)基于springboot,vue疗养中心管理系统
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net refrector
  • .net网站发布-允许更新此预编译站点
  • .NET序列化 serializable,反序列化
  • @selector(..)警告提示
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [BZOJ1008][HNOI2008]越狱
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C/C++]数据结构 栈和队列()
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [CSS]文字旁边的竖线以及布局知识
  • [CTSC2014]企鹅QQ