接口,抽象类,String,StringBuffer和StringBuilder学习总结

1.抽象类

抽象类是用abstract修饰的类,抽象类的特点:
1)抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
2)抽象类不能实例化
抽象类的子类:
要么是抽象类:如果是抽象类的子类那么这个子类不能直接实例化,没有意义,但是在java 的设计理念中肯定存在一个具体的子类
要么是具体类:可以通过子类进行对象的创建,利用多态的方式
3)抽象类强制子类重写父类中的抽象方法,否则编译不通过
我个人对于抽象类的理解就是将这个类看做是一个含糊的表达方法,因为现实生活中我们无法判断例如"衣服","动物"这些类型的物体,我们无法说出这个类型具体包含哪些特征,只知道它们的共性有哪些,比如说衣服共性中有遮羞,御寒,但是还有很多其他的功能我们没办法通过具体类表达出来,比如礼服和运动衣是两个类型的衣服,除了共同的功能遮羞以外还有很多不同的地方,比如穿着舒适度,场合都不相同.所以我们只能通过一个抽象的概念来概括这个衣服这类型的物品,具体有哪些特征我们可以通过子类来单独声明.

2.接口

接口是用interface修饰的类,接口的特点:
1)成员变量只能是常量,存在默认的修饰符public static final
2)接口中的方法只能是抽象方法,存在默认修饰符public abstract
3)没有构造方法,只能通过子实现来实例化

我对于接口的概念和抽象差不多,但是接口比抽象类更加的抽象,抽象类中还可以有构造方法和各种修饰符修饰的成员变量,而他只能存在抽象方法.

3抽象类和接口的区别

1)关系区别:
类与类:继承关系,只支持单继承,可以多层继承不能多继承
类与接口:实现关系,一个类可以实现多个接口
接口与接口:继承关系,支持单继承,也可以多继承
2)设计区别:
抽象类—体现了"is a"的关系
接口—体现了"like a"的关系

4.String,StringBuffer,StringBuilder的区别

String字符串是常量,一旦被赋值,其值不能被改变
StringBuffer和StringBuilder都作为字符串缓冲区,都是可变的字符序列
StringBuffer的执行效率略低但是线程安全
StringBuilder的执行效率最高但是线程不安全
在单线程中,使用StringBuilder代替StringBuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值