Java 带有toString()的私有变量

Java 带有toString()的私有变量,java,Java,大家好,我正在创建一个购物车程序,并尝试创建一个toString()方法 这是我的高尔夫课 package ShoppingCart; public class GolfHat extends Product { private String name; private String colour; private String make; private double price; public GolfHat(String type, Strin

大家好,我正在创建一个购物车程序,并尝试创建一个toString()方法

这是我的高尔夫课

package ShoppingCart;

public class GolfHat extends Product {

    private String name;
    private String colour;
    private String make;
    private double price;

    public GolfHat(String type, String make, String name, String colour,double price) {

        this.type = "hat";
        name = name;
        colour = colour;
        make = make;
        price = price;

    }
我的产品类别是

package ShoppingCart;

public class Product {

    public String type ;

    public  String toString (){
        if (type=="hat" ) {

            System.out.println ("Type: " + type + "\t" + "Make: " + make);
            return type;
        }

        if (type=="Glove"){

        }
            return "cant find";

    }

它不允许我使用make变量,我认为它不允许我这样做,因为我的变量是私有的,但是在我的评估中,我需要展示一个封装的示例,我正在努力查看我还可以在哪里执行它

第一个编译错误:

System.out.println ("Type: " + type + "\t" + "Make: " + make);
if (type=="Glove"){

    }
Product
没有
make
实例变量。它的子类
GolfHat
声明变量。子类继承一个超类的非私有成员,反之则不行

逻辑错误:

System.out.println ("Type: " + type + "\t" + "Make: " + make);
if (type=="Glove"){

    }
这是比较字符串内容的错误方法。改用
equals()
方法

if ("Glove".equals(type)){

    }

您应该在
golfHat

public class GolfHat extends Product 
{
    public String toString ()
    {
        // you can use make here
    }
}

Golfhat是产品的一个子类。产品对make一无所知,不应该知道。
您可以从

start开始阅读。剩下的应该是显而易见的。@jlordo-Nope,虽然字符串比较的方法是错误的,但代码甚至没有编译,因为他试图访问一个私有变量。这不是重复的。