基本形式
public 类名(参数列表){}
可以有多个构造函数
public Student(String name, int age, double grade) { this.name = name; this.age = age; this.grade = grade; } public Student(String name){ this.name = name; this.age = 20; this.grade = 3.0; } public Student(){ this.name = "unnamed"; this.age = 0; this.grade = 0; }根据参数判断调用哪个构造函数
Student student = new Student("Mike", 21, 3.5); Student jack = new Student("Jack"); Student somebody = new Student();类中的字段可以有初始值,构造对象时,先将字段设置为初始值,然后根据构造函数进行修改。
A继承自B,则A拥有B的字段和方法。
若B中的字段是private,那么该字段只被A拥有,但是不能使用。通常将B中的字段设为protected,那么该字段可以被其子类使用,而不能被其他类使用。B称为父类,A称为子类。
// 当Student是Persond的子类时 Person p1 = new Person(); // 正确 Person p2 = new Student(); // 正确,因为Student是一个Person Student p3 = new Person(); // 错误但p2无法使用Student中独有的方法,需要做类型转换。
可以用以下方法查看是什么类型:
System.out.println(p1 instanceof Student); System.out.println(p2 instanceof Student); 以如下方式创建子类: public class Student extends Person{}注意:把类名写全。当没写全时,先在当前包下面寻找是否有该类。
public class Student extends cn.weiling.ex02.Person{} super()的使用:在子类的构造函数中调用父类的构造函数。