package com.box;
public class Box {
double width;
double height;
double depth;
//封装类成员变量
Box(Box ob){
width=ob.width;
height=ob.height;
depth=ob.depth;
System.out.println("我是传递一个对象的构造函数");
}
Box(double w,double h,double d){
width=w;
height=h;
depth=d;
System.out.println("我是有三个参数的构造函数");
}
Box(){
width=-1;
height=-1;
depth=-1;
System.out.println("admin我是无参数的构造函数");
}
Box(double len){
width=height=depth=len;
System.out.println("我是double len构造函数");
}
double volume() {
return width*height*depth;
}
}
package com.box;
public class BoxWeight extends Box {
double weight;
BoxWeight(double w,double h,double d,double m){
width=w;
height=h;
depth=d;
weight=m;
System.out.println("我是子类");
}
double vol(double len) {
return volume();
}
}
package com.box;
public class ExetendsTest {
public static void main(String[] args) {
BoxWeight mybox1=new BoxWeight(10, 20, 15, 34.3);
BoxWeight mybox2=new BoxWeight(2,3,4,0.076);
System.out.println(mybox2.vol(10));
double vol;
vol=mybox1.volume();
System.out.println();
System.out.println("Volume of mybox1 is"+vol);
System.out.println("weight of mybox1 is"+mybox1.weight);
System.out.println();
}
}
继承:1、一个类可以是多个类的超类,反过来说一个子类有多个超类是错误的。
2、子类拥有超类所有的特性
3、超类的修饰符不能为private,这样子继承它的子类是无法访问的
构造函数:1、构造函数是一个类被实例化对象过程中的初始器,做用是为类分配空间,创建对象,对象初始化
2、如果没有显示的指定构造函数,在类创建一个实例化对象是,系统会自动调用默认的构造函数
3、构造函数中的重载(也属于构造函数),其中多个参数的构造函数在被实例化程序执行的顺序和原理同默认构造函数 一样
4、一旦显示的创建了构造函数,就不会有默认的构造函数。