Вы не указываете, на каком языке (языках) вы говорите; возможно, есть какой-то экзотический язык, у которого есть свойство, которое вы описываете, но, по крайней мере, в таких языках, как Java и C ++, нет концепции вывода, что два класса «одинаковы» в зависимости от того, какие методы / переменные экземпляра они объявляют.
Итак, ответ «нет, они не одного и того же класса, даже если они выглядят одинаково».
Случай с подклассом немного отличается: если вы объявите B
как подкласс A
(без добавления каких-либо методов или переменных), они все равно будут разными классами, но объект класса B
также "is-a
" A
из-за нормальных правил наследования.