Java 基本概念 (三) -- 构造类和关键字
构造类
没有指明构造函数时,使用默认构造器
this 和 super 放在第一条,只能有一条,子类没有 super 默认调用 super()
// 构造函数 采用 与类相同的名称,并大写
class Rock {
Rock(int i) {
System.out.println("Rock" + i + "");
}
}
public class SimpleConstrutor {
public static void main(String[] args) {
for (int i = 0; i < 8; i++) {
new Rock(i);
}
}
}
// 一个问题
class A() {
A(int a) {}
}
class B extends A {
// 编译不能通过,默认调用 super(),而 super 调用 A 构造函数需要有参数
B(String s) {}
p = new Person(){{age = 18, name = "somename"}} // 默认
}
方法重载
根据参数类型不同进行区分
-
构造函数重载
-
方法重载
不同于覆盖,是重定义新的方法
强制类型转换
向下转型是安全的
Person p = new Person();
Student s = new Student();
Person p2 = new Student();
Student s2 = (Student) p2; // 强制类型转换
关键字
this 关键字
- 解决局部变量与域同名问题
- 调用另一个构造方法 (必须放在第一句)
static 方法就是没有 this 的方法
super 关键字
- 访问父类的域和方法
- 使用父类的构造方法 (此时,super 必须放在第一句)
package
package pkg1.pkg2..
同一个包中的各个类,默认情况下可以互相访问
浙公网安备 33010602011771号