Вывод в консоль информации

Всем привет. СОздал классы, затем объекты, добавил инфу, затем массив, как мне теперь вывести информацию о кроватях в консоль?

package com.company;


import java.util.Scanner;
/*
комментарий
 */
public class Main {

    public static void main(String[] args) {
        ChildrensBeds ChildrensBeds = new ChildrensBeds();
        ChildrensBeds.name = "BTS";
        ChildrensBeds.price = 18.899f;
        ChildrensBeds.color = "White";
        ChildrensBeds.bodyMaterial = "ЛДПС";



        SingleBeds singleBeds = new SingleBeds();
        singleBeds.name = "Hoff";
        singleBeds.price = 21.435f;
        singleBeds.color = "Black";
        singleBeds.boxForLinen = true;

        DoubleBed doubleBed = new DoubleBed ();
        doubleBed.name = "ESTA";
        doubleBed.price = 39.000f;
        doubleBed.color = "Blue";
        doubleBed.countryOfOrigin = "Хорватия";

        Bed [] beds = new Bed [] {ChildrensBeds, singleBeds, doubleBed };

        for (Bed t: beds){
            System.out.println(t + " " + t + " " + t + " ");
        }
        // write your code here
    }
}

class  Bed
{
    String name;
    Float price;
    String color;
}
class ChildrensBeds extends Bed
{
    String bodyMaterial;

}

class SingleBeds extends Bed
{
    boolean boxForLinen;
}

class DoubleBed extends Bed
{
    String countryOfOrigin;
}

В данный момент выводит следующее: com.company.ChildrensBeds@60addb54 com.company.ChildrensBeds@60addb54 com.company.ChildrensBeds@60addb54 com.company.SingleBeds@3f2a3a5 com.company.SingleBeds@3f2a3a5 com.company.SingleBeds@3f2a3a5 com.company.DoubleBed@4cb2c100 com.company.DoubleBed@4cb2c100 com.company.DoubleBed@4cb2c100


Ответы (3 шт):

Автор решения: nPaBllla

Вам необходимо переопределить метод toString() для вашего класса, если вы работаете в intellij idea, то можете нажать alt+insert -> toString()

→ Ссылка
Автор решения: afjord

Если не хотите переопределять toString(), что неправильно, то можно лениво всё вывести.
Вместо:

System.out.println(t + " " + t + " " + t + " ")

Написать:

System.out.printf("Name: %s price:%f color: %s country: %s\n",
t.name, t.price, t.color, t.countryOfOrigin);

UPD Но лучше переопределить в классах метод toString, т.к поля у вас разные. В родителе сделать так:

return String.format("Name: %s price:%f color: %s", t.name, t.price, t.color);

В наследниках (на примере ChildrensBeds):

return super.toString() + "bodyMaterial: " + bodyMaterial;
→ Ссылка
Автор решения: Никита Жуков

Можно создать гетары:

class  Bed
{
    String name;
    Float price;
    String color;
}
class ChildrensBeds extends Bed
{
    String bodyMaterial; 

    public Strind getData() { 
       return name+" " +prise+" "+color+" " +dodyMaterial;
    } 
}

class SingleBeds extends Bed
{
    boolean boxForLinen; 

     public Strind getData() { 
             return name+" " +prise+" "+color+" " +boxForLinen;
    } 
}

class DoubleBed extends Bed
{
    String countryOfOrigin; 
    public Strind getData() { 
         return name+" " +prise+" "+color+" " +countryOfOrigin;
    } 

}
→ Ссылка