一、java面向对象的特征
1.抽象
我的理解:在面向对象中,所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
继承的关键字:extends
| 子类是抽象类 | 子类是普通类 |
父类抽象类 |
可以不用重写父类的方法 |
必须重写父类的抽象方法 |
父类普通类 |
可以不用重写父类的方法 |
可以不用重写父类的方法 |
抽象类总结规定
-
1). 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
-
2). 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
-
3). 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
-
4). 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
-
5). 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
-
6). 在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
2. 继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
需要注意的是 Java 不支持多继承,但支持多重继承
继承中的关键字:
extends:在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类 implements:使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。
final 关键字:声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写: