抽象类有哪些特点?

简介: 基础

从多个具体的类中抽象出来的父类叫做抽象类,抽象类就像是一个模板。抽象类使用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不是线程安全的。

相关文章
|
4月前
|
存储 Java
抽象类与抽象方法
抽象类和抽象方法是面向对象编程中的重要概念。抽象类不能被实例化,主要用于定义子类的通用接口或行为。抽象方法是在抽象类中声明但未实现的方法,要求子类必须实现这些方法。这种方式有助于构建灵活且可扩展的代码结构。
155 2
|
4月前
抽象类
作用:类似“模板”,其目的是要设计者依据它的格式来修改并创建新的类,但是并不能直接由抽象类创建对象,只能通过抽象类派生出新的类,再由它来创建对象,只能单继承 定义及使用规则: 1)包含一个抽象方法的类必须是抽象类 2)抽象类和抽象方法都要使用abstract关键字声明 3)抽象方法只需声明而不需要实现 4)抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法
30 0
|
10月前
|
C++
C++程序中的抽象类
C++程序中的抽象类
115 0
|
10月前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
137 0
|
10月前
|
存储
抽象类为什么有抽象方法?
抽象类为什么有抽象方法?
|
Java 编译器
认识抽象类
认识抽象类
97 0
|
程序员 C# 索引
知识回顾:抽象类与抽象方法
知识回顾:抽象类与抽象方法
122 0
抽象类和抽象方法
抽象方法abstract public void Func();声明了abstract 不能有函数体 声明了virtual可以有函数体
539 0
|
C++
抽象类、抽象函数/抽象方法详解
抽象类运用 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助...
1292 0