Voici mon code:
class A
{
int x=2,y=3;
}
class B extends A
{
//Blank
}
public class Test
{
public static void main(String args[])
{
A a=new A();
B b;
b=a;
System.out.println(b.x);
System.out.println(b.y);
}
}
Quand je suis en train d'exécuter ce code, « types incompatibles: A ne peuvent pas être convertis en B » erreur est affiché.
Et quand je suis en train de type cast « a » dans « B », ClassCastException est survenue.
Est-il possible d'assigner l'objet à un autre objet de différentes classes en Java?
Sur le plan technique, une variable de « classe de base » peut être attribué « sous classe », mais pas l'inverse. A savoir que vous pouvez avoir "A a = new B ()" mais pas "B b = new A ()".
Il y a aussi une raison intuitive. La classe de base est généralement quelque chose de fondamental, dire « personne », alors que la sous - classe est plus spécifique et promet de fournir plus de propriétés / fonctionnalités de « Maître » (= personne ainsi que des capacités supplémentaires pour enseigner). Vous ne pouvez pas forcer une personne ordinaire à appeler comme par magie elle - même un enseignant, il échouerait la minute où vous essayez d'activer toutes les fonctions d'enseignement ...
Nous pourrions commencer un argument philosophique à propos des occasions où la chose spécifique a moins de capacités que la base (par exemple « IncompetentPerson étend personne ») mais l'héritage java est généralement pas pour objectif de couvrir cela.