Semasa saya menonton video Teacher Gao baru-baru ini, saya mendapati titik pengetahuan yang saya tidak begitu faham Kodnya adalah seperti berikut:
public class Test065 {
public static void main(String[] args){
Date d = new Date();//得到当前时间的毫秒数
System.out.println(d);
Dog a = new Dog();
System.out.println(a);
}
}
class Dog{
int age;
}
Hasil keluaran adalah seperti berikut:
Thu Jun 15 19:43:29 CST 2017
com.test065.Dog@33909752
Ia juga mencetak objek Mengapa objek kelas Tarikh mengeluarkan masa semasa, manakala objek binaan sendiri mengeluarkan kod cincang?
Xiaomengxin meminta bantuan daripada rakan-rakan, saya sangat kagum!
Kaedah Println akan memanggil kaedah toString objek keluaran Jika objek tidak mentakrifkan kaedah toString, ia akan mengikut rantaian warisan untuk mencari kelas induk.
Tarikh mempunyai kaedah toString yang ditakrifkan, jadi output adalah maklumat atribut yang diformatkan.
Kelas Anjing tersuai tidak mempunyai kaedah toString, jadi kaedah toString kelas induk digunakan, iaitu Object's
Apabila mencetak objek, nilai pulangan kaedah toStringnya akan dicetak Date mengatasi kaedah toString. Jika Dog tidak mengatasi toString, ia akan memanggil kaedah toString Object kelas induk
Kelas Date mengatasi toString() dalam kelas induk Objek, tetapi kelas anda sendiri tidak. . . Lihat kod sumber kelas Tarikh
Kaedah toString telah ditulis semula, anda boleh menyemaknya sendiri dalam kod sumber.