静态变量除了使用对象访问,还可以直接使用该类的名称访问,如
类名称.静态变量
构造方法的重载
方法重写/方法覆盖
supper关键字
1.使用supper调用父类的同名变量或方法
object类
方法 | 功能说明 |
---|---|
boolean equal(Object o) | 比较两个对象的地址是否相同 |
java.lang.Class getClass() | 返回对象执行时的Class实例 |
string toString() | 返回对象的字符串表示形式 |
equals()方法:比较两个对象是否相等,比较的是地址,即是否是同一个对象。一些类对equals()进行重写,如Integer,String,重写后比较的是值
getClass()方法,返回一个对象对应的Class类对象
toString()方法,返回对象的字符串表示形式
抽象类
abstract
abstract class 类名{
//类体
}
抽象方法:方法名,参数列表及返回值类型,没有方法体
abstract 数据类型 方法名 (形参列表);
抽象类和抽象方法具有规则:
抽象类中可以没有抽象方法,但有抽象方法的类必须定义为抽象类;
抽象类不能被实例化,即不能用new生成一个对象,即使这个抽象类中没有抽象方法也不能实例化
若一个子类继承一个抽象类,则子类需用方法重写的方式具体实现抽象方法。若没有完全实现所有的抽象方法,则子类仍应该定义为抽象类。
抽象类只能当作父类被继承,抽象类不能实例化一个对象。抽象类的方法要使用只能通过子类继承的方法重写
接口
接口的定义
接口代表着一种规范。
接口是比抽象类更加抽象的程序单元。接口中全部是常量与抽象方法,没有任何具体实现,由类去具体实现这些接口。使得规范与实现分离。
[public] interface 接口名 [extends 接口1, 接口2 ……]{
[public] [static] [final] 类型 常量名 = 常量值;
[public] [abstract] 返回值类型 方法名 ([参数列表]);
}
接口的继承
多继承
接口的实现
多态
向上转型是指将子类的对象当作父类型的对象使用,此时对象叫做上转型对象。向上转型后这个对象就被认为是父类型,就不能调用子类特有的成员,只能调用子类继承下来的或重写的成员。
形参可以定义为父类型或接口类型,
实参可以是任意的子类型。
向下转型
instanceof 运算符,用来判断某对象是否是某个类型的对象
问题:
1.抽象类的意义是什么,目前的例子表明它有点脱裤子放屁,多此一举。
自答 :为了搭构造,在舍弃程序简洁性的基础上提高可读性?为接口的实现做一个基础。
2.类的继承与类的实例化