面向对象:
类的继承:指在一个现有的类的基础上去构建一个新的类,构建出来的类被称为子类,现有的类被称为父类,子类会自动拥有父类所有可继承的属性和方法,
class 子类 extends 父类{}
注意:
1 在java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,
class A{} class b{} class C extends A,b{};是不允许的。
2 多个类可以继承同一个父类,
class A{}
class B extends A{}
class C extends A{}
3 可以多重继承,即一个类的父类可以再继承另外的父类,
class A{}
class B extends A{}
class C extends B{}
4 子类和父类是一种相对概念,也就是说一个类是某个类的父类的同时,也可以是另一个类的子类,
class
Person extends Object {
//类中定义的 全局变量,如果有赋值。
//第一次类调用时被执行
//编译原理
//正确代码-->编译通过-->所有代码.java 编译成了.class
// java虚拟机执行的是 .class
//.class执行方式,第一次调用.class时,内部代码从上到下执行一边。 全局变量附上值,方法放到内存里
String name="李光";// 姓名
public Person() {
// super();//写不写该语句,效果一样
System.out.println("execute Person()");
}
public Person(String name) {
this.name = name;
System.out.println("execute Person(name)");
}
}
class Student extends Person {
String school="北大";// 学校
public Student() {
// super();//写不写该语句,效果一样
System.out.println("execute Student() ");
}
public Student(String name, String school) {
super(name); // 显示调用了父类有参构造方法,将不执行无参构造方法
this.school = school;
System.out.println("execute Student(name,school)");
}
}
class PostGraduate extends Student {
String guide;// 导师
public PostGraduate() {
//隐式调用
// super();//写不写该语句,效果一样
System.out.println("execute PostGraduate()");
}
public PostGraduate(String name, String school, String guide) {
super(name, school);
this.guide = guide;
System.out.println("execute PostGraduate(name, school, guide)");
}
}
class TestInherit {
public static void main(String[] args) {
PostGraduate pgdt=null;
pgdt = new PostGraduate();
System.out.println();
pgdt=new PostGraduate("刘致同","北京大学","王老师");
}
}