抽象类:
如果一个类没有足够的信息去描绘一个具体的对象,那么这个类就可以叫做抽象类。
也可以叫做:可声明抽象方法的类==》抽象类
注意:
<1>抽象类不可以实例化对象,所以它只能被继承,才能使用。其他类的功能,它都可以实现。
<2>抽象类可以声明多个抽象方法,以及多个非抽象方法。
接口:interface:一系列行为的封装。
a、在接口中定义的成员变量,默认为:public static final
b、接口中不能有非抽象方法,即,不能有具体实现。
c、接口中声明的方法,默认为:public abstract
d、接口可以继承接口
f、类只能实现接口,不能继承接口。
g、类只能单继承,多实现。
Object:<所有类都默认继承的>
a、Object类是所有Java的基类,所有的Java类都可以覆写其中的非私有,非静态。
b、在不明确指定某一个Java类的父类时,该类默认继承Object类。
c、Object可以引用所有引用数据类型的变量指向的对象。
d、Object类型的变量,只能调用其对应类型中该类的非私有的,成员变量,或者成员方法,
无法直接调用其子孙类中定义的成员变量或方法。
e、Object类的变量只能用作各种值的通用持有者,要对他们进行专门的操作,需要进行对应的转型。
Final:
<1>修饰类:不可被继承
<2>修饰变量:只能初始化一次,之后不可改变值
<3>修饰方法>:不可被覆盖面
思考:
<1>抽象类与接口的区别:
1.概念不一样
前者是对我们所要得到对象们性质的总结,也就是对本质的抽象。例如,汽车,吉普车,电车,它们都是车,都是交通工具。
是这个对象,它是什么。
而后者是对动作的抽象。是这个对象能做什么。
一个类只能继承一个类(抽象类),但是可以实现多个接口,(java的一种变相的多重继承)。
2.使用方向不一样
关注事物的本质时,我们用抽象类,关注事物的具体操作时,我们用接口。