Java面向对象程序思想-2
总言
Java的所有对象都继承自object对象,基本的数据类型如int、char、float,在jdk1.5时代之前需要用包装类作转换,但在之后的版本实现了自动拆箱和装箱。
==和equals方法
Java程序有两种方式判断两个变量是否相等,一种是利用==运算符,另一种是equals()方法。使用==来判断两个变量是否相等时,如果两个变量是基本数据类型,则只有两个变量的数值相等,则返回true。但对于引用类型的变量,只有他们都指向一个对象时才返回true。==不可用于比较类型上没有父子关系的两个对象。
通过重写equals方法能够自定义对象相等的标准,如果不进行重写,则与==一样。
class Persion{
public boolean equals(Object obj){
return true;
}
}
final修饰符
final关键字可以用来修饰类、变量和方法,表示不可改变。
final一旦修饰了变量,变量一旦初始化了就不可以在改变。
final修饰的方法不能被子类重写。
final修饰的类无法被继承。
抽象类
抽象方法和抽象类必须使用abstract关键字进行修饰,有抽象方法的类只能被定义为抽象类,抽象类可以没有抽象方法。规则如下:
抽象类要使用abstract来定义,抽象方法不能有方法体,抽象类可以有实现的方法;
抽象类不能被实例化;
抽象类可以包含变量、方法、构造函数、内部类
接口
java8中在接口中可以定义常量、默认方法(default修饰)、类方法(静态函数)
package sky;
public interface Fly
int MaxCount=21000;
void fly();
default void braveFly(int level){
System.out.println(level);
}
static String getClassName(){
return “class name Fly”;
}
}
接口支持多重继承,使用extends关键字。
interface a extends b,c,d
{
}