java基础练习继承

编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。然

后再编写一个A类的子类B,要求子类B必须继承类A的方法f(不允许重写),

子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子

类新增的方法g输出大写的英文字母表。最后编写主类C,在主类的main方法

中测试类A与类B

 

package lianxi;

public class A {

    public void f()
    {
        System.out.println("小写字母表");
        for(char c='a';c<='z';c++)
        {
            System.out.print(c+" ");
            
        }
        System.out.println();
    }

}

 

package lianxi;

public class B extends A {
    public void g()
    {
        System.out.println("大写字母表");
        for(char c='A';c<='Z';c++)
        {
            System.out.print(c+" ");
            
        }
        System.out.println();
    }

}
package lianxi;

public class C {

    public static void main(String[] args) {
        B b=new B();
        b.f();
        b.g();
        

    }

}

实现一个名为Person的类和它的子类EmployeeEmployee有两个子类Faculty

Staff

具体要求如下:

1Person类中的属性有:姓名nameString类型),地址addressString类型),

电话号码telphoneString类型)和电子邮件地址emailString类型)

2Employee类中的属性有:办公室officeString类型),工资wagedouble

类型),受雇日期hiredateString类型)

3Faculty类中的属性有:学位degreeString类型),级别levelString类型)

4Staff类中的属性有:职务称号dutyString类型)

package lianxi;

public class Person {
    private String name;
    private String address;
    private String telphone;
    private String email;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getTelphone() {
        return telphone;
    }
    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public Person(String name, String address, String telphone, String email) {
        super();
        this.name = name;
        this.address = address;
        this.telphone = telphone;
        this.email = email;
    }

}
package lianxi;

public class Employee extends Person {
    private String office;
    private double wage;
    private String hiredate;
    public Employee(String name, String address, String telphone, String email, String office, double wage,
            String hiredate) {
        super(name, address, telphone, email);
        this.office = office;
        this.wage = wage;
        this.hiredate = hiredate;
    }
    public String getOffice() {
        return office;
    }
    public void setOffice(String office) {
        this.office = office;
    }
    public double getWage() {
        return wage;
    }
    public void setWage(double wage) {
        this.wage = wage;
    }
    public String getHiredate() {
        return hiredate;
    }
    public void setHiredate(String hiredate) {
        this.hiredate = hiredate;
    }

}
package lianxi;

public class Faculty extends Employee {
    private String degree;
    private String level;
    public Faculty(String name, String address, String telphone, String email, String office, double wage,
            String hiredate, String degree, String level) {
        super(name, address, telphone, email, office, wage, hiredate);
        this.degree = degree;
        this.level = level;
    }
    public String getDegree() {
        return degree;
    }
    public void setDegree(String degree) {
        this.degree = degree;
    }
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    

}
package lianxi;

public class Staff extends Employee {
    private String duty;

    public Staff(String name, String address, String telphone, String email, String office, double wage,
            String hiredate, String duty) {
        super(name, address, telphone, email, office, wage, hiredate);
        this.duty = duty;
    }

    public String getDuty() {
        return duty;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

}

24.编写一个Car类,具有final类型的属性品牌,具有功能drive

定义其子类AodiBenchi,具有属性:价格、型号;具有功能:变速;

定义主类E,在其main方法中分别创建AodiBenchi的对象并测试对象的特

性。

package lianxi;

public class Car {
     final String pinpai="品牌";
     public void drive()
     {
         System.out.println("pinpai"+"开车");
     }

}
package lianxi;

public class Aodi extends Car {
    private double price;
    private String xinghao;
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getXinghao() {
        return xinghao;
    }
    public void setXinghao(String xinghao) {
        this.xinghao = xinghao;
    }
    public Aodi(double price, String xinghao) {
        super();
        this.price = price;
        this.xinghao = xinghao;
    }
    public void drive()
    {
        System.out.println("Aodi"+"型号"+xinghao+"价格"+price);
        System.out.println("Aodi变速");
    }

}
package lianxi;

public class Benchi extends Car {
    private double price;
    private String xinghao;
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getXinghao() {
        return xinghao;
    }
    public void setXinghao(String xinghao) {
        this.xinghao = xinghao;
    }
    public Benchi(double price, String xinghao) {
        super();
        this.price = price;
        this.xinghao = xinghao;
    }
    public void drive()
    {
        System.out.println("Benchi"+"型号"+xinghao+"价格"+price);
        System.out.println("Benchi变速");
    }


}
package lianxi;

public class E {

    public static void main(String[] args) {
        Aodi a=new Aodi(100000,"100");
        a.drive();
        Benchi b=new Benchi(100000,"100");
        b.drive();
        

    }

}

按要求编写一个Java应用程序:

1)编写一个矩形类Rect,包含:

两个protected属性:矩形的宽width;矩形的高height

两个构造方法:

1.一个带有两个参数的构造方法,用于将widthheight属性初化;

2.一个不带参数的构造方法,将矩形初始化为宽和高都为10

两个方法:

求矩形面积的方法area()

求矩形周长的方法perimeter()

2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用

矩形的左上角坐标来标识,包含:

添加两个属性:矩形左上角坐标startXstartY

两个构造方法:

4个参数的构造方法,用于对startXstartYwidthheight属性

初始化;

不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0

 

package lianxi;

public class Rect {
    protected int width;
    protected int hight;
    public Rect(int width, int hight) {
        super();
        this.width = width;
        this.hight = hight;
    }
    public Rect()
    {
        width=10;
        hight=10;
    }
    public int area()
    {
        return width*hight;
    }
    public int perimeter()
    {
        return (width+hight)*2;
    }

}

 

package lianxi;

public class PlainRect extends Rect {
    private int startX;
    private int startY;
    public int getStartX() {
        return startX;
    }
    public void setStartX(int startX) {
        this.startX = startX;
    }
    public int getStartY() {
        return startY;
    }
    public void setStartY(int startY) {
        this.startY = startY;
    }
    public PlainRect(int width, int hight, int startX, int startY) {
        super(width, hight);
        this.startX = startX;
        this.startY = startY;
    }
    public PlainRect()
    {
        startX =0;
        startY =0;
        hight =0;
        width =0;
        
    }
    public boolean isInside(double x,double y)
    {
        
        if(x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-hight))
            return true;
        else
            return false;
        
            
    }
}
package lianxi;

public class TestRect {
    public static void main(String[] args){ 
        
         PlainRect p=new PlainRect(10,20,10,10);
         System.out.println("面积是"+p.area());
         System.out.println("周长是"+p.perimeter());
         System.out.println("点(25.5,13)"+(p.isInside(25.5, 13)?"在":"不在")+"此矩形内");
         
         
         
    }
    

}

 

posted on 2016-05-23 15:07  煜渝  阅读(286)  评论(0编辑  收藏  举报

导航