当一个类包含了至少一个抽象方法时,他必须abstract关键字修饰,他必须是抽象类
抽象方法,被关键字abstract所修饰,不能有方法实现
当一个类继承了抽象类后,他必须实现父类的所有抽象方法否则他必须也是一个抽象类
抽象类不能被实例化也就是不能new
抽象类与普通类的区别
如何多态
使用继承 子类重写父类方法 。。。
向上转型:
父类引用子类
可见性 子类重写父类的方法
应用 多态
向下转型:
强制类型转换,父类转换子类
应用 类型的还原 instanceof
判断一个对象是否属于一个类或者实现了一个借口
强制类型转换之前通过instanceof 运算符检查对象的真实类型
避免类型转换异常,提高代码健壮性
所有类的超类(基类) 重写equals() toString
类 Object
是类层次结构的根类。每个类都使用 Object
作为超类。所有对象(包括数组)都实现这个类的方法。
GC垃圾回收器 进行内存回收的重要机制 自动运行
static可以修饰属性方法代码块
static修饰的属 性和方法成为类属性类方法
不使用static修饰的属性和方法属于单个对象 通常称为实例属性 实例方法
static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问
常量命名全部大写
package sstatic;
public class TestStatic {
// 常量全部大写,不可被改变
public static final int NUMBER = 10;
static int m = 20;
// 静态方法属于类,通过类名.方法名来调用
// 静态方法只能调用静态成员
public static void TestChange() {
m++;
System. out.println("static" );
}
// public static int n=10;
public static void main(String[] args) {
TestStatic t=new TestStatic();
TestStatic t1=new TestStatic();
TestStatic t2=new TestStatic();
// 类的静态成员是属于类的,不属于对象,全类只有一份
// t.n=20;
System. out.println(TestStatic.NUMBER);
}
// 静态块执行优先级最高,但只执行一次
static {
System. out.println("kjejssmokee" );
}
}
接口:是一种规范,一种强制性的规范
接口不可被实例化
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态变量
与抽象类的区别:
接口支持多继承(优点)
接口内不能有实现了的方法
接口里的变量全是静态常量
接口实现的是功能
implements
相同点:
都不能被实例化
常量是一种标识符,他的值在运行期间恒定不变
常量标识符在程序中只能被引用而不能被重新赋值
final修饰变量时 变成常量 圆周率
修饰方法 方法不能被重写
修饰类 类不能被继承
finalize
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 |
英文
override 、方法重写 box装箱
overload、、、方法重载 unbox拆箱