zoukankan      html  css  js  c++  java
  • Java入门——day47

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

     1 //基类Shape
     2 class Shape {
     3     public double getArea() {
     4         return 0;
     5     }
     6 }
     7 //Rectangle类继承Shape类
     8 class Rectangle extends Shape {
     9     private double len;
    10     private double width;
    11     public Rectangle(double len, double width) {
    12         super();
    13         this.len = len;
    14         this.width = width;
    15     }
    16     public double getArea() {
    17         return len * width;
    18     }
    19 }
    20 //Circle类继承Shape类
    21 class Circle extends Shape {
    22     private double r;
    23     public Circle(double r) {
    24         super();
    25         this.r = r;
    26     }
    27     public double getArea() {
    28         return 3.14 * r * r;
    29     }
    30 }
    31 //Square类继承Rectangle类
    32 public class Square extends Rectangle {
    33     public Square(double len, double width) {
    34         super(len, width);
    35     }
    36     public static void main(String[] args) {
    37         Shape p = new Rectangle(3, 6);
    38         System.out.println("The area of the rectangle is " + p.getArea());
    39         p = new Circle(3);
    40         System.out.printf("The area of the circle is %.2f\n", p.getArea());
    41         p = new Square(4, 4);
    42         System.out.println("The area of the square is " + p.getArea());
    43     }
    44 }


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

     1 //父类Mammal类
     2 class Mammal{
     3     private String name;
     4     private int age;
     5     public Mammal(String name, int age) {
     6         this.name=name;
     7         this.age=age;
     8         System.out.println("构造哺乳动物类");
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public int getAge() {
    14         return age;
    15     }
    16 }
    17 //Dog类继承Mammal类
    18 public class Dog extends Mammal{
    19     private int leg; 
    20     public Dog(String name, int age, int leg) {
    21         super(name, age);
    22         this.leg=leg;
    23         System.out.println("构造狗类");
    24     }
    25     public void display() {
    26         System.out.println("Name:"+getName());
    27         System.out.println("Age:"+getAge());
    28         System.out.println("Leg:"+leg);
    29     }
    30     public static void main(String[] args) {
    31         Dog p=new Dog("Sera",5,4);
    32         p.display();
    33     }
    34 }


    3.定义一个基类及其派生类,在构造函数中输出提示提示信息,构造派生类的对象,观察构造函数的执行情况。

     1 //父类Base类
     2 class Base{
     3     public Base() {
     4         System.out.println("构造基类");
     5     }
     6 }
     7 //Derived类继承Base类
     8 class Derived extends Base{
     9     public Derived() {
    10         System.out.println("构造派生类");
    11     }
    12     
    13 }
    14 public class Test {
    15     public static void main(String[] args) {
    16         Derived p=new Derived();
    17     }
    18 }


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

     1 //父类Document类
     2 class Document{
     3     private String name; //书名
     4     public Document(String name) {
     5         this.name = name;
     6     }
     7     public String getName() {
     8         return name;
     9     }
    10 }
    11 //子类Book类
    12 public class Book extends Document{
    13     private int pageCount; //页数
    14     public Book(String name,int pageCount) {
    15         super(name);
    16         this.pageCount=pageCount;
    17     }
    18     public void display() {
    19         System.out.println("Name:"+getName());
    20         System.out.println("PageCount:"+pageCount);
    21     }
    22     public static void main(String[] args) {
    23         Book b=new Book("Java程序设计",425);
    24         b.display();
    25     }
    26 }


    5.定义一个Object1类,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数的调用顺序。

     1 //父类Object1类
     2 class Object1{
     3     private float weight;
     4     public Object1(float weight) {
     5         this.weight=weight;
     6         System.out.println("构造Object1类");
     7     }
     8     public float getWeight() {
     9         return weight;
    10     }
    11 }
    12 //子类Box类
    13 public class Box extends Object1{
    14     private float height;
    15     private float width;
    16     public Box(float weight,float height,float width) {
    17         super(weight);
    18         this.height=height;
    19         this.width=width;
    20         System.out.println("构造Box类");
    21     }
    22     public void display() {
    23         System.out.println("The weight of the box is "+getWeight());
    24         System.out.println("The height of the box is "+height);
    25         System.out.println("The width of the box is "+width);
    26     }
    27     public static void main(String[] args) {
    28         Box b=new Box(1.2f,1,0.8f);
    29         b.display();
    30     }
    31 }


     6.定义一个基类BaseClass,从它派生出类DerivedClassBaseClass有成员函数fn1()fn2()DerivedClass也有成员函数fn1()fn2()。在主函数中声明对象来调用fn1()fn2(),观察运行结果。

     1 //基类BaseClass
     2 class BaseClass{
     3     public void fn1() {
     4         System.out.println("Base.fn1");
     5     }
     6     public void fn2() {
     7         System.out.println("Base.fn2");
     8     }
     9 }
    10 //子类DerivedClass
    11 public class DerivedClass extends BaseClass {
    12     public void fn1() {
    13         System.out.println("Derived.fn1");
    14     }
    15     public void fn2() {
    16         System.out.println("Derived.fn2");
    17     }
    18     public static void main(String[] args) {
    19         DerivedClass m=new DerivedClass();
    20         m.fn1();
    21         m.fn2();
    22         BaseClass n=new BaseClass();
    23         n.fn1();
    24         n.fn2();
    25         n=new DerivedClass();
    26         n.fn1();
    27         n.fn2();
    28     }
    29 }

  • 相关阅读:
    安装项目管理工具 SVN+Redmine
    jquery validate
    NHibernate集合映射中的set, list, map, bag, array
    NHibernate执行原始SQL代码的方法小结 .
    一个简单的存储过程
    修改Project中的表名及字段名
    用代码修改类名
    实现Pick和Reigister
    转移单的装运和收货
    库存维度检查
  • 原文地址:https://www.cnblogs.com/znjy/p/13543583.html
Copyright © 2011-2022 走看看