java练习(三)

题目

抽象类:创建一个Vehicle类并将它声明为抽象类。在Vehicle类中声明一个抽象方法NoOfWheels方法,使它返回一个字符串值。创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。在Car类中,应当返回“四轮车”信息;而在Motorbike类中,应当返回“双轮车”信息。创建另一个带main方法的类 在该类中创建Car和Motorbike的实例 并在控制台中显示消息。

代码

Car.java

public class Car extends  Vehicle {
    @Override
    public String NoOfWheels(){
        return  "四轮车";
    }
}

Motorbike.java

public class Motorbike extends Vehicle{
    @Override
    public String NoOfWheels(){
        return "双轮车";
    }
}

Test.java

public class Test {
    public static void main(String[] args) {
        Vehicle car1 = new Car();
        Vehicle bike1 = new Motorbike();
        System.out.println(car1.NoOfWheels());
        System.out.println(bike1.NoOfWheels());
    }
}

Vehicle.java

public abstract class Vehicle {
public abstract String NoOfWheels();
}

题目

接口:创建一个名称为Vehicle的接口,在接口中添加两个方法start()和stop()。在两个名称分别为Bike和Bus的类中实现Vehicle接口,实现接口中的方法,在方法中输出车辆信息。创建一个名称为InterfaceDemo的类,在InterfaceDemo的main()方法中创建Bike和Bus对象,并访问start()和stop()方法。

代码

Bike.java

public class Bike implements Vehicle{
    @Override
    public void start(){
        System.out.println("自行车-start");
    }
    @Override
    public void stop(){
        System.out.println("自行车-stop");
    }
}

Bus.java

public class Bus implements Vehicle {
    @Override
    public void start(){
        System.out.println("公交车-start");
    }
    @Override
    public void stop(){
        System.out.println("公交车-stop");
    }
}

Vehicle.java

public interface Vehicle {
public void start();
public void stop();
}

InterfaceDemo.java

public class InterfaceDemo {
    public static void main(String[] args) {
        Vehicle bike = new Bike();
        Vehicle bus = new Bus();
        bike.start();
        bike.stop();
        bus.start();
        bus.stop();
    }
}

题目

请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿 吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方 法、fly()方法。

代码

A.java

public interface A {
    public void fly();

}

Animal.java

public class Animal {
    public void eat(){
        System.out.println("吃东西");
    }
}

Bird.java

public class Bird extends Animal implements A {
    @Override
    public  void fly(){
        System.out.println("鸟儿飞翔");
    }
    @Override
    public void eat(){
        System.out.println("鸟儿吃虫");
    }
}

Test.java

public class Test {
    public static void main(String[] args) {
        Animal b = new Bird();
        b.eat();
        Bird b1 = (Bird) b ;
        b1.eat();
        b1.fly();
    }
}

题目

编写一个Person抽象类,要求含有姓名(name)年龄(age)两个私有属性以及吃饭(eat) 和睡觉(sleep)两个抽象方法,并写出带参构造方法,创建学生(Student)和工人(Worker)两个类,继承Person类,学生类多出了私有属性学号和学习方法(输出我爱学习),工人类多出了私有属性工号和工作方法(输出我爱工作),在主函数中创建学生和工人类的实例对象,使用构造方法赋值,并输出所有属性和方法。

显示结果如下:

姓名:李四,年龄:18,学号:1024

食堂吃饭

我爱学习

姓名:张三,年龄:20,工号:1025

自己做饭

在家躺着睡觉

我爱工作

代码

Person.java

public abstract class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public abstract void  eat();
    public abstract void sleep();

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "姓名:"+this.name+", 年龄:"+this.age;
    }
}

Student.java

public class Student extends Person{
    private int stuNum;
    public Student(String name,int age,int stuNum){
        super(name,age);
        this.stuNum=stuNum;
    }

    public Student() {
    }

    public Student(int stuNum) {
        this.stuNum = stuNum;
    }

    public void study() {
        System.out.println("我爱学习");

    }
    @Override
    public void eat() {
        System.out.println("食堂吃饭");

    }

    @Override
    public void sleep() {

    }


    /**
     * 获取
     * @return stuNum
     */
    public int getStuNum() {
        return stuNum;
    }

    /**
     * 设置
     * @param stuNum
     */
    public void setStuNum(int stuNum) {
        this.stuNum = stuNum;
    }
@Override
    public String toString() {
        return super.toString()+", 学号:"+this.stuNum;
    }
}

Worker.java

public class Worker extends Person {
   private String wNum;

    public Worker() {
    }

    public Worker(String wNum) {
        this.wNum = wNum;
    }

    public  void work(){
       System.out.println("我爱工作");
   }
   public Worker(String name,int age,String stuNum){
       super(name, age);
       this.wNum=stuNum;
   }
    @Override
    public void eat() {
        System.out.println("自己做饭");
    }

    @Override
    public void sleep() {
        System.out.println("在家躺着睡觉");

    }

    /**
     * 获取
     * @return wNum
     */
    public String getWNum() {
        return wNum;
    }

    /**
     * 设置
     * @param wNum
     */
    public void setWNum(String wNum) {
        this.wNum = wNum;
    }
@Override
    public String toString() {
        return super.toString()+", 工号:"+this.wNum;
    }
}

Test.java

public class Test {
    public static void main(String[] args) {
        Student stu = new Student("小A",20,184001);
        Worker worker = new Worker("老林",35,"101010");
        System.out.println(stu);
        stu.eat();
        stu.study();
        System.out.println(worker);
        worker.eat();
        worker.sleep();
        worker.work();
    }
}

你可能感兴趣的:(java练习(三))