1、编码实现子类的构造函数的练习:
父类“Person”类, “Teacher”类继承“Person”类。要求:
(1)Person类:私有属性——名字name,籍贯location,构造函数(有参的),info方法(输出成员变量的信息);
(2)Teacher类:增加“职称“属性,重载构造方法。
第一个构造方法,只有name和captical两个形参,但是要求教师的籍贯信息为河南;第二个构造方法有三个参数,name,location和captical。
重写“Person“类的info()方法,增加“职称”信息。
(3)创建对象,并输出他们的信息。
下面展示一些
内联代码片
。
public class zuoye1 {
public static void main(String[] args) {
Person a=new Person("王老师","河南");
a.info();
Teacher b=new Teacher("王老师","河南","教师");
b.info();
}
}
class Person{
private String name,location;
public Person(String name) {
}
public Person() {
}
public Person(String name,String location) {
this.name=name;
this.location=location;
}
public void info() {
System.out.println("名字:"+name+" "+"籍贯:"+location);
}
}
class Teacher extends Person{
private String captical;
public Teacher() {
}
public Teacher(String name,String captical) {
super(name);
this.captical=captical;
}
public Teacher(String name,String location,String captical){
super(name,location);
this.captical=captical;
}
public void info() {
super.info();
System.out.println("职称:"+captical);
}
}
2、父类Box,子类BoxWeight,计算输出子类对象的体积和重量。具体要求及步骤:
(1) 定义类Box,具有如下属性字段:宽度(width)、高度(height)、深度(depth);定义构造函数初始化这三个字段;定义一个成员函数volume,计算Box的体积(=width
height
depth)。
(2) 定义Box的子类BoxWeight,使其比Box多一个属性字段密度(density);定义构造函数初始化这四个字段;定义一个求其重量的成员方法。
(3) 定义主类,在主类中声明一个Box对象和一个子类BoxWeight对象,计算输出Box对象的体积,计算输出BoxWeight对象的体积和重量。
下面展示一些
内联代码片
。
public class Zuoye2 {
public static void main(String[] args) {
Box v=new Box(2,2,3);
v.volume();
BoxWeight v1=new BoxWeight(2,3,4,6);
v1.volume();
v1.M();
System.out.println("Box体积:"+v.volume());
System.out.println("BoxWeight体积:"+v1.volume()+"重量:"+v1.M());
}
}
//父类Box,子类BoxWeight,计算输出子类对象的体积和重量。具体要求及步骤:
//(1) 定义类Box,具有如下属性字段:宽度(width)、高度(height)、深度(depth);定义构造函数初始化这三个字段;
//定义一个成员函数volume,计算Box的体积(=width*height*depth)。
//(2) 定义Box的子类BoxWeight,使其比Box多一个属性字段密度(density);定义构造函数初始化这四个字段;定义一个求其重量的成员方法。
//(3) 定义主类,在主类中声明一个Box对象和一个子类BoxWeight对象,计算输出Box对象的体积,计算输出BoxWeight对象的体积和重量。
class Box{
double width,height,depth,v;
public Box(double width,double height,double depth) {
this.width=width;
this.height=height;
this.depth=depth;
}
// public Box() {
//
// }
public double volume() {
return width*height*depth;
}
}
class BoxWeight extends Box{
private double density;
// public BoxWeight() {
// super();
// }
public BoxWeight(double width,double height,double depth,double density) {
super(width,height,depth);
this.density=density;
}
public double M(){
return density*volume();
}
}
3、定义一个车的基类Vehicle,含有成员speed,weight。该类派生出自行车类Bicycle,增加high高度成员;派生出汽车类Car,增加seatnum座位数成员。然后,编制测试类,建立Bicycle对象和Car 对象,并输出它们的有关数据。
下面展示一些
内联代码片
。
public class zuoye3 {
public static void main(String[] args) {
Bicycle a=new Bicycle(10,3,5);
Car bCar=new Car(8,4,2,7);
System.out.println(a);
System.out.println(bCar);
}
}
//定义一个车的基类Vehicle,含有成员speed,weight。该类派生出自行车类Bicycle,增加high高度成员;派生出汽车类Car,
//增加seatnum座位数成员。然后,编制测试类,建立Bicycle对象和Car 对象,并输出它们的有关数据。
class Vehicle{
double speed,weight;
public Vehicle(double speed,double weight) {
this.speed=speed;
this.weight=weight;
}
}
class Bicycle extends Vehicle{
double high;
public Bicycle(double speed,double weight,double high) {
super(speed, weight);
this.high=high;
}
public String toString() {
return "速度:"+speed+",重量:"+weight+"高:"+high;
}
}
class Car extends Bicycle{
private int seatnum;
public Car(double speed,double weight,double high, int seatnum) {
super(speed,weight,high);
this.seatnum=seatnum;
}
public String toString() {
return "速度:"+speed+",重量:"+weight+"高:"+high+",座位数:"+seatnum;
}
}