Untuk contoh ini:
public class Foo{}
public class Bar extends Foo{}
....
void myMethod(Foo qux){
if (checkInstance(qux,Foo.class)){
....
}
}
Bagaimana cara memeriksa apakah qux
adalah sebuah instance dari Foo (tetapi bukan instance dari subkelas foo)? Itu dia:
Apakah ada semacam pernyataan seperti instanceof
untuk pengecekan ini? atau saya harus menggunakan qux.getClass().equals(Foo.class)
Jika Anda harus melakukan ini, satu-satunya cara adalah dengan menggunakan opsi getClass().equals(Foo.class)
yang Anda sarankan.
Namun, tujuan dari desain OO adalah untuk memungkinkan Anda untuk memperlakukan Foo
dengan cara yang sama. Apakah instance tersebut merupakan subkelas atau bukan seharusnya tidak relevan dalam program normal.