一、今日学习内容

  1、定义一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类和派生类的构造函数的调用顺序。

复制代码
 1 //基类:Mammal类
 2 public class Mammal {
 3     protected float weight,height;
 4     Mammal(float w,float h){
 5         weight=w;
 6         height=h;
 7         System.out.println("Mammal类构造函数");
 8     }
 9 }
10 //派生类:Dog类
11 public class Dog extends Mammal{
12     private float tail;
13     Dog(float w,float h,float t){
14         super(w,h);
15         tail=t;
16         System.out.println("Dog类构造函数");
17     }
18     public void show() {
19         System.out.println("身高:"+height+"米"+"\n体重"+weight+"千克\n"+"尾巴:"+tail+"米\n");
20     }
21 
22     public static void main(String[] args) {
23         Dog x=new Dog((float)15,(float)0.8,(float)0.2);
24         x.show();
25     }
26 }
复制代码

  2、定义一个Document类,有数据成员name,从Document派生Book类,增加数据成员pageCount。

复制代码
 1 //Document类:
 2 public class Document {
 3     protected String name;
 4     Document(String n){
 5         name=n;
 6     }
 7 }
 8 //Book类:
 9 public class Book extends Document {
10     private int pageCount;
11     Book(String n,int p){
12         super(n);
13         pageCount=p;
14     }
15     public void show() {
16         System.out.println("文件名:"+name+"\n页数:"+pageCount);
17     }
18 
19     public static void main(String[] args) {
20         Book a=new Book("书",100);
21         a.show();
22     }
23 }
复制代码

3、定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。

//Shape类:
public abstract class Shape {
    public abstract void getArea();
}
//Rectangle类:
public class Rectangle extends Shape{
    private float l,w;
    Rectangle(float l1,float w1){
        l=l1;
        w=w1;
    }
    public void getArea() {
        float a;
        a=l*w;
        System.out.println("形状:矩形");
        System.out.println("该图形面积为:"+a);
    }
}
//Circle类:
public class Circle {
    private float r;
    Circle(float r1){
        r=r1;
    }
    public void getArea() {
        float a;
        a=(float)3.14*r*r;
        System.out.println("形状:圆形");
        System.out.println("该图形的面积为:"+a);
    }
}
//Square类:
public class Square extends Rectangle {
    Square(float a){
        super(a,a);
    }
}
//测试类:
import java.util.*;
public class Test2 {
    public static void main(String[] args) {
        float x,y,r;
        System.out.println("请输入边长:");
        Scanner con=new Scanner(System.in);
        x=con.nextFloat();
        y=con.nextFloat();
        Rectangle rec=new Rectangle(x,y);
        rec.getArea();
        System.out.println("请输入半径:");
        r=con.nextFloat();
        Circle cir=new Circle(r);
        cir.getArea();
    }
}

二、遇到的问题

  无。

三、明日计划

  继续完成相关例题的验证。

posted on 2020-08-19 20:35  白日梦想家~  阅读(145)  评论(0编辑  收藏  举报