java基础复习(11)--final关键字和抽象类

final 关键字
final--用于类,方法,变量前
final--不可被继承,如java.lang.Math就是一个final类,不可被继承
final变量--在初始化后不可改变变量值,用于常量定义。如果final变量是引用变量,则不可以改

变它的引用对象,但可以改变对象的数据(属性)
final方法--不可被覆盖

abstract 可以使用abstract来修饰一个类或者方法
用abstract修饰的类表示这个类是一个抽象类,用abstract修饰的方法表示这个方法是一个抽象

方法
抽象类不能被实例化
抽象方法是只有方法声明,而没有方法的实现的方法
抽象类中不一定必须有抽象方法
一个普通类中不可以有抽象方法。
抽象类可以有构造方法。(相当于抽象类的构造器是私有的,只有子类可以调用)

充:
抽象类并非一定需要抽象方法,但是没有抽象方法,抽象类就没有存在的必要
在以下任一条件成立时,类必须定义成抽象类:
--类中至少有一个抽象方法
--类继承了父类中的抽象方法,但是至少有一个抽象方法没实现
--类实现了某个接口,但没有全部实现接口中的方法

安全,加密,破解不宜用面向对象来做

 

树的遍历(中序遍历)

printTree(TreeNode root){
if(root.left!=null)
printTree(root.left);
System.out.println(root.data):
if(root.right!=null)
printTree(root.right);
}


接口是方法和常量值得定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义。而没有变量和方法的实现


抽象类和接口:
抽象类表达类之间的关系,也表达了类的功能,一个类只能有一个父类
接口表达了类的功能,不体现类的继承关系,一个类可以实现多个接口
抽象类和接口都可以使用多态,提供代码的灵活性

C++多继承,当父类有同样签名的方法,但实现不一样,子类就不知道到底调用哪个方法。
java干脆直接限制只能单继承,它的“多继承”利用接口来实现。

你可能感兴趣的:(java)