java基础相关
Posted 青春无敌美少
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础相关相关的知识,希望对你有一定的参考价值。
1.接口和抽象类
1).接口的特点
不能实例化
没有构造方法
方法默认public abstract修饰
变量默认public static final修饰
2).抽象类特点
继承了抽象类的子类,要么对父类的抽象方法进行重写,要么自己也是抽象类
抽象类也可以拥有普通方法
抽象类不能创建对象
抽象类也有构造方法,但是是为了子类创建对象使用
3).接口和抽象类相同点
都是不断抽取出来的抽象概念
4).接口和抽象类的区别
接口是行为的抽象,是一种行为的规范,接口是like a 的关系;抽象是对类的抽象,是一种模板设计,抽象类是is a 的关系。
接口没有构造方法,而抽象类有构造方法,其方法一般给子类使用
接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
抽象体现出了继承关系,继承只能单继承。接口提现出来了实现的关系,实现可以多实现。接口强调特定功能的实现,而抽象类强调所属关系。
接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
2.抽象类和普通类的区别
抽象类不能被实例化,抽象类的子类必须实现所有的抽象方法才能被实例化;普通类可以实例化。
抽象类必须用关键字abstract修饰;普通类不使用关键字abstract。
抽象类中的抽象方法只被声明,没有方法体;普通类有方法体。
抽象方法不能是private的,因为抽象类必须被子类继承进行方法重写;普通方法可以是public、private、protected的。
抽象类中可以没有抽象方法,但抽象方法必须在抽象类中;普通类没有抽象方法。
子类继承抽象类之后,必须重写抽象类所有的抽象方法,否则子类必须设置为抽象类。
抽象类可以使用多态;普通类不可以。
以上是关于java基础相关的主要内容,如果未能解决你的问题,请参考以下文章