我读过关于超类、抽象等的文章。我理解大多数一般想法。我现在有 3 个类(主类、超类、子类)
头等舱:获取用户里程和加仑的汽车类型,将数据发送到子类。子类将数据设置为变量。
我正在尝试找出一种方法来打印汽车的每加仑英里数。这个计算方法位于超类中,但我找不到打印该方法的方法。这是我的代码:
主要
import java.util.Scanner;
public class StartingPoint {
public static void main (String[]args)
{
Scanner input = new Scanner(System.in); //Get user input
Mercedes mCar = new Mercedes(); //Accesses subclass of the Car superclass (Mercedes)
Toyota tCar = new Toyota(); //Accesses subclass of the Car superclass (Toyota)
System.out.println("Do you own a mercedes or a toyota?"); //Get car type
String carName = input.nextLine();
if (carName.charAt(0) == 'm' || carName.charAt(0) == 'M')
{
System.out.println("How many miles have you travelled?");
double miles = input.nextDouble();
System.out.println("How many gallons have you used?");
double gallons = input.nextDouble();
mCar.setGallons(gallons);
mCar.setMiles(miles);
}
else if (carName.charAt(0) == 't' || carName.charAt(0) == 'T')
{
//NOT CODED YET
}
else
{
System.out.println("Not a valid car name for the system...");
}
}
}
超级舱
public abstract class Car {
public double calcMPG(double miles, double gallons)
{
return (miles/gallons);
}
}
超类(汽车)的子类
public class Mercedes extends Car {
private double miles;
private double gallons;
public Mercedes()
{
miles = 0;
gallons = 0;
}
public void setMiles(double inputMiles)
{
miles = inputMiles;
}
public void setGallons(double inputGallons)
{
gallons = inputGallons;
}
}
,这就是我解决这个问题的方式。
在我的梅赛德斯课上,我创建了一个叫做calc的方法。 在我调用的方法中:System.out.print(super.calcMPG(miles,gallons));
回到我的主要方法中,我调用了 mCar.calc();
通过这种方式,它成功地计算了所有数据并打印出来。
超类中的toString
方法,然后简单地使用 System.out.print
打印对象来实现。为了完成这项工作,你必须稍微重建你的超类和子类。这就是我这样做的方式,它有效,但我不确定这是否是你想要的。希望它以任何方式有所帮助。
主要方法:
package CarProject;
import java.util.Scanner;
public class StartingPoint {
public static void main (String[]args)
{
Scanner input = new Scanner(System.in); //Get user input
Mercedes mCar = new Mercedes(); //Accesses subclass of the Car superclass (Mercedes)
Toyota tCar = new Toyota(); //Accesses subclass of the Car superclass (Toyota)
System.out.println("Do you own a mercedes or a toyota?"); //Get car type
String carName = input.nextLine();
if (carName.charAt(0) == 'm' || carName.charAt(0) == 'M')
{
System.out.println("How many miles have you travelled?");
double miles = input.nextDouble();
System.out.println("How many gallons have you used?");
double gallons = input.nextDouble();
mCar.setGallons(gallons);
mCar.setMiles(miles);
}
else if (carName.charAt(0) == 't' || carName.charAt(0) == 'T')
{
System.out.println("How many miles have you travelled?");
double miles = input.nextDouble();
System.out.println("How many gallons have you used?");
double gallons = input.nextDouble();
mCar.setGallons(gallons);
mCar.setMiles(miles);
}
else
{
System.out.println("Not a valid car name for the system...");
}
if (carName.charAt(0) == 't' || carName.charAt(0) == 'T') {
System.out.println("Miles per gallon for your Toyota is " +tCar);
} else if (carName.charAt(0) == 'm' || carName.charAt(0) == 'M') {
System.out.println("Miles per gallon for your Mercedes is " + mCar);
}
}
}
超类
package CarProject;
public class Car {
double miles;
double gallons;
@Override
public String toString() {
return String.valueOf(miles/gallons);
}
}
梅赛德斯子类
package CarProject;
public class Mercedes extends Car {
public Mercedes()
{
miles = 0;
gallons = 0;
}
public void setMiles(double inputMiles)
{
miles = inputMiles;
}
public void setGallons(double inputGallons)
{
gallons = inputGallons;
}
}
子类丰田
package CarProject;
public class Toyota extends Car {
public Toyota()
{
miles = 0;
gallons = 0;
}
public void setMiles(double inputMiles)
{
miles = inputMiles;
}
public void setGallons(double inputGallons)
{
gallons = inputGallons;
}
}
import java.io.*;
class parent {
int a; //VARIABLE DECLARATIONS IS ALLOWED ONLY HERE
public void get1() throws Exception {
DataInputStream in = new DataInputStream(System.in);
System.out.print("n ENTER THE INTEGER:");
a = Integer.parseInt(in.readLine());
}
}
class child extends parent {
int b; //VARIABLE DECLARATIONS IS ALLOWED ONLY HERE
public void get2() throws Exception {
DataInputStream in = new DataInputStream(System.in);
System.out.print("n ENTER THE INTEGER:");
b = Integer.parseInt(in.readLine());
}
}
public class sample {
public static void main(String args[]) throws Exception {
child obj = new child();
obj.get1();
obj.get2();
System.out.println("n SUM="+(obj.a+obj.b));
}
}