抽象类有哪些特点?

简介: 基础

从多个具体的类中抽象出来的父类叫做抽象类,抽象类就像是一个模板。抽象类使用abstract关键字修饰,抽象类可以拥有抽象方法(使用abstract修饰的方法,由子类来提供方法的实现)。抽象类的特点如下:

1.可以包含抽象方法

抽象方法与普通方法的区别在于,抽象类不提供抽象方法的实现,由继承抽象类的子类实现抽象方法。

2.不能实例化

也正因为包含抽象方法,抽象类不能被实例化。抽象类的构造器不能用于创建实例,是仅提供给子类调用的。除此以外,抽象类跟普通类一样,可以拥有成员变量,普通方法,构造器,初始化块,内部类,枚举等。

3.抽象类可以被继承

继承抽象类的子类如果实现了所有抽象方法,那么可以作为普通类使用,否则也只能作为抽象类。

String,StringBuffer和StringBuilder之间的区别是什么?

1.可变性

String是一个不可变类,任何对String改变都是会产生一个新的String对象,所以String类是使用final来进行修饰的。而StringBuffer和StringBuilder是可变类,对应的字符串的改变不会产生新的对象。

2.执行效率

当频繁对字符串进行修改时,使用String会生成一些临时对象,多一些附加操作,执行效率降低。

stringA = StringA + "2";
//实际上等价于
{
  StringBuffer buffer = new StringBuffer(stringA)
  buffer.append("2");
  return buffer.toString();
}点击复制代码复制出错复制成功

在对stringA进行修改时,实际上是先根据字符串创建一个StringBuffer对象,然后调用append()方法对字符串修改,再调用toString()返回一个字符串。

3.线程安全

StringBuffer的读写方法都使用了synchronized修饰,同一时间只有一个线程进行操作,所以是线程安全的,而StringBuilder不是线程安全的。

相关文章
|
2月前
抽象类
如何使用如何使用抽象类和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法 4.创建子类对象进行使用 关于抽象类: 1.抽象类不能创建对象,只能创建器非抽象的子类对象 2.抽象类中,可以有构造方法,是子类创建对象时,初始化父类成员用的。 3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 4.抽象类的子类,必须重新抽象父类中的所有抽象方法和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法
10 0
|
4月前
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
|
前端开发 JavaScript Java
|
9月前
|
设计模式 前端开发 Java
Spring 详解
Spring 详解
25318 5
|
10月前
|
Java API 索引
Java数组详解
Java数组详解
141 0
|
12月前
|
Linux 调度 开发工具
C++线程的简单学习及了解
C++线程的简单学习及了解
219 0
C++线程的简单学习及了解
|
物联网 C++
C/C++之(一)洛谷刷题及洛谷评测 中
C/C++之(一)洛谷刷题及洛谷评测 中
522 0
C/C++之(一)洛谷刷题及洛谷评测 中
|
Web App开发 前端开发
给Img标签设置height和width属性
给Img标签设置height和width属性
517 0
|
前端开发 应用服务中间件 nginx
利用nginx反向代理,解决前端跨域问题
利用nginx反向代理,解决前端跨域问题
408 0
利用nginx反向代理,解决前端跨域问题