CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Parent class not abstract ?

Kilmor69
Kilmor69
Niveau 30
22 novembre 2020 à 18:00:11

Hello,

Est-ce une mauvaise pratique d'avoir une classe parent qui n'est pas abstraite ?
J'ai deux classes très similaires, la seul différence est que l'une intègre des attributs supplémentaires. Du coup je me demande si je dois créer un parent commun pour les deux, sachant que l'un des deux serait exactement le même que le parent.


public abstract class A{
      private String X
      private Long Y;
}

public class B extends A{
      private Byte B;
      private Integer C;
}

public class C extends A { 
}

Du coup je me demande si je devrais pas simplement créer la classe A en concrete, puis la B extends A.

Les deux marchent, mais quelle est la meilleure pratique ici ?
Merci

Message édité le 22 novembre 2020 à 18:00:50 par Kilmor69
xidi87
xidi87
Niveau 8
22 novembre 2020 à 18:24:11

Pour répondre à ta question, il faut te demander si ça a du sens d'instancier la classe parente directement. Si c'est possible selon ton modèle objet, alors la classe doit être concrète. Si ça n'a pas de sens, alors il faut la mettre abstraite.

Après je rajouterais selon ton modèle : pourquoi la classe C ?
J'aurais fait la classe A en concrète, et B qui hérite de A directement :ok:

Message édité le 22 novembre 2020 à 18:26:48 par xidi87
Kilmor69
Kilmor69
Niveau 30
22 novembre 2020 à 18:31:27

Oui ça a du sens d'instancier la classe A (ou C si héritage, bref celle qui a moins d'attributs).
Donc en effet je me disais pareil, autant partir direct sur A concrète, puis B qui hérite de A (sinon ça rend l'application plus complexe pour rien, car derrières il y a les classes Service, Repository/DAO, DTO, etc).
Mais je me demandais si c'était pas une mauvaise pratique, c'est pour ça que je préfère avoir des avis externes.

Merci pour ta réponse :)

Message édité le 22 novembre 2020 à 18:31:49 par Kilmor69
boucif
boucif
Niveau 24
22 novembre 2020 à 18:35:29

Non c’est même rare les classes abstraites, ça ne de sens que si les enfants ont des comportements différents devant être implémenter.

Kilmor69
Kilmor69
Niveau 30
22 novembre 2020 à 19:26:26

Ok merci pour le complément d'info

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment