继承,抽象类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.web;

public class Test29 {
    
    
    public static void main(String[] args) {
    
    
        Dog dog = new Dog("xiaobai", 2);
        dog.height = 10;//定义dog身高,weight因为是私有的,不能dog.weight = 12
        dog.printData();
    }
}

class Animal {
    
    
    private String name;
    public int age;

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

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

class Dog extends Animal {
    
    
    public int height;//在main方法中就可以设定
    private int weight = 20;
    public Dog(String name, int age) {
    
    
        super(name, age);
    }

    public void printData() {
    
    
        System.out.println("年齢:" + this.age);//age是public的,可以取到
        //System.out.println(this.name);//name取不到,被封装了,继承也不行
        System.out.println("名前:" + this.getName());
        System.out.println("身長:"+this.height);//在main中定义了
        System.out.println("体重:"+this.weight);//自己类中weight,也不需要get方法就可以取到
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package murauchi;

import java.util.Scanner;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        Car car = new Car("フェラーリ", "赤");
        Bicycle bicycle = new Bicycle("ビアンキ", "緑");

        System.out.println("【車の情報】");
        car.printData();
        System.out.println("-----------------");
        System.out.print("走る距離を入力してください:");
        int carDistance = scanner.nextInt();
        // runメソッドを呼び出して、引数にcarDistanceを渡してください
        car.run(carDistance);

        System.out.println("-----------------");
        System.out.print("給油する量を入力してください:");
        int litre = scanner.nextInt();
        car.charge(litre);

        System.out.println("=================");
        System.out.println("【自転車の情報】");
        bicycle.printData();
        System.out.println("-----------------");
        System.out.print("走る距離を入力してください:");
        int bicycleDistance = scanner.nextInt();
        // runメソッドを呼び出して、引数にbicycleDistanceを渡してください
        bicycle.run(bicycleDistance);
    }
}

class Vehicle {
    
    
    private String name;
    private String color;
    // private int distance = 0;
    protected int distance = 0;//让子类和父类可以取到

    // Vehicleクラスのコンストラクタを定義してください
    Vehicle(String name, String color) {
    
    
        this.name = name;
        this.color = color;
    }

    public String getName() {
    
    
        return this.name;
    }

    public String getColor() {
    
    
        return this.color;
    }

    public int getDistance() {
    
    
        return this.distance;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public void setColor(String color) {
    
    
        this.color = color;
    }

    public void printData() {
    
    
        System.out.println("名前:" + this.name);
        System.out.println("色:" + this.color);
        System.out.println("走行距離:" + this.distance + "km");
    }
}

class Car extends Vehicle {
    
    
    private int fuel = 50;

    // Carクラスのコンストラクタを定義し、
    // superを用いてスーパークラスのコンストラクタを呼び出してください
    Car(String name, String color) {
    
    
        super(name, color);
    }

    public int getFuel() {
    
    
        return this.fuel;
    }

    public void printData() {
    
    
        super.printData();
        System.out.println("ガソリン量:" + this.fuel + "L");
    }

    public void run(int distance) {
    
    
        System.out.println(distance + "km走ります");
        int dis = this.getDistance();
        if (distance <= this.fuel) {
    
    
            //this.distance += distance;//私有private 取不到
            //this.getDistance() += distance;//为啥报错
            //dis+=distance;
            //this.fuel -= distance;
            this.distance += distance;
        } else {
    
    
            System.out.println("ガソリンが足りません");
        }
        //System.out.println("走行距離:" + dis + "km");
        System.out.println("走行距離:" + this.distance + "km");
        System.out.println("ガソリン量:" + this.fuel + "L");
    }

    public void charge(int litre) {
    
    
        System.out.println(litre + "L給油します");
        if (litre <= 0) {
    
    
            System.out.println("給油できません");
        } else if (litre + this.fuel >= 100) {
    
    
            System.out.println("満タンまで給油します");
            this.fuel = 100;
        } else {
    
    
            this.fuel += litre;
        }
        System.out.println("ガソリン量:" + this.fuel + "L");
    }
}

class Bicycle extends Vehicle {
    
    
    // Bicycleクラスのコンストラクタを定義し、
    // superを用いてスーパークラスのコンストラクタを呼び出してください
    Bicycle(String name, String color) {
    
    
        super(name, color);
    }

    public void run(int distance) {
    
    
        System.out.println(distance + "km走ります");
        //this.getDistance() += distance;//为啥报错
        //int dis = this.getDistance();
        //dis+=distance;
        //System.out.println("走行距離:" + dis + "km");
        this.distance += distance;
        System.out.println("走行距離:" + this.distance + "km");
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package murauchi;

import java.util.Scanner;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        Car car = new Car("フェラーリ", "赤");
        Bicycle bicycle = new Bicycle("ビアンキ", "緑");

        System.out.println("【車の情報】");
        car.printData();
        System.out.println("-----------------");
        System.out.print("走る距離を入力してください:");
        int carDistance = scanner.nextInt();
        car.run(carDistance);

        System.out.println("-----------------");
        System.out.print("給油する量を入力してください:");
        int litre = scanner.nextInt();
        car.charge(litre);

        System.out.println("=================");
        System.out.println("【自転車の情報】");
        bicycle.printData();
        System.out.println("-----------------");
        System.out.print("走る距離を入力してください:");
        int bicycleDistance = scanner.nextInt();
        bicycle.run(bicycleDistance);
    }
}

abstract class Vehicle {
    
    
    private String name;
    private String color;
    protected int distance = 0;//让子类和父类可以取到

    Vehicle(String name, String color) {
    
    
        this.name = name;
        this.color = color;
    }

    public String getName() {
    
    
        return this.name;
    }

    public String getColor() {
    
    
        return this.color;
    }

    public int getDistance() {
    
    
        return this.distance;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public void setColor(String color) {
    
    
        this.color = color;
    }

    public void printData() {
    
    
        System.out.println("名前:" + this.name);
        System.out.println("色:" + this.color);
        System.out.println("走行距離:" + this.distance + "km");
    }
    public abstract void run(int distance);
}

class Car extends Vehicle {
    
    
    private int fuel = 50;
    Car(String name, String color) {
    
    
        super(name, color);
    }

    public int getFuel() {
    
    
        return this.fuel;
    }

    public void printData() {
    
    
        super.printData();
        System.out.println("ガソリン量:" + this.fuel + "L");
    }

    public void run(int distance) {
    
    
        System.out.println(distance + "km走ります");
        int dis = this.getDistance();
        if (distance <= this.fuel) {
    
    
            this.distance += distance;
        } else {
    
    
            System.out.println("ガソリンが足りません");
        }
        //System.out.println("走行距離:" + dis + "km");
        System.out.println("走行距離:" + this.distance + "km");
        System.out.println("ガソリン量:" + this.fuel + "L");
    }

    public void charge(int litre) {
    
    
        System.out.println(litre + "L給油します");
        if (litre <= 0) {
    
    
            System.out.println("給油できません");
        } else if (litre + this.fuel >= 100) {
    
    
            System.out.println("満タンまで給油します");
            this.fuel = 100;
        } else {
    
    
            this.fuel += litre;
        }
        System.out.println("ガソリン量:" + this.fuel + "L");
    }
}

class Bicycle extends Vehicle {
    
    
    Bicycle(String name, String color) {
    
    
        super(name, color);
    }

    public void run(int distance) {
    
    
        System.out.println(distance + "km走ります");
        this.distance += distance;
        System.out.println("走行距離:" + this.distance + "km");
    }
}```

猜你喜欢

转载自blog.csdn.net/djydjy3333/article/details/121427657