2016-03-31 5 views
-1

Ich bin verwirrt darüber, wie ich meine Tractor-Klassenzusammenfassung behalten kann, während ich noch testTractor-Klasse lasse, um ihre Funktionen auszuführen.Wie kann ich dieses Programm reparieren, während ich immer noch meine abstrakte Klasse halte?

testTracator.java:9: Fehler: Traktor ist abstrakt; kann nicht instanziiert werden Traktor testT = neuer Traktor();

public class testTractor 
     { 
     public static void main (String[] args) 
     {  
      Tractor testT = new Tractor(); 
      testT.setName("TractorTest"); 
      testT.setVehicleID(5450); 
      testT.setRentalDays(25); 
      testT.setRentalRate(40); 
      System.out.println("Tractor Name: " + testT.getName()); 
      System.out.println("Vehicle ID: " + testT.getVehicleID()); 
      System.out.println("Rental Days: " + testT.getRentalDays()); 
      System.out.println("Rental Rate: " + testT.getRentalRate()); 
     } 
+0

Sie müssen uns nicht Ihren Tractor-Klassencode zeigen, damit wir in irgendeiner vernünftigen Weise helfen können? –

+0

Sie müssen die abstrakte Funktionalität von 'Tractor' implementieren entweder über eine separate Klasse oder Inline – MadProgrammer

+0

Ich denke, dass Sie dieses Problem ohne eine abstrakte Klasse nähern sollten, aber das ist eine vollständige Schätzung, da Sie keinen Code gebucht haben. – Bautista

Antwort

-1

Ich schätze Ihre TestTractor Klasse sollte Ihre Tractor Klasse extend. Dann können Sie Ihre Tractor Klasse abstrakt halten, während Sie immer noch in der Lage sind, Ihre Instanzen von TestTractor als Tractor Objekte zu behandeln, wenn das praktisch ist. Sie sollten auch nur den Konstruktor für die Klasse TestTractor aufrufen. Denken Sie daran, dass Google Ihr Freund ist, und es gibt Unmengen von Beispielen zu sehen.

+1

'TestTractor' muss die abstrakte Klasse' Tractor' erweitern. Dann initialisieren Sie die abstrakte Klasse als 'Tractor tractor = new TestTracator();'. Weil die Abtract-Klasse nicht initialisiert werden kann. – LES

+0

Wichtiger Hinweis @LES, behoben. – LinuxDisciple

+0

Vielen Dank Herr. – MajorJavaUser

0

Eine abstrakte Klasse kann nicht instanziiert werden. Die Idee hinter einer abstrakten Klasse besteht darin, eine Spezifikation von allgemeinen Attributen und Funktionen (mit optionalen Standardimplementierungen) zu definieren, die verschiedene, aber verwandte Klassen haben können. Sie können eine Unterklasse erstellen, die von der abstrakten Tractor-Klasse erbt. Auf diese Weise können Sie ihre Funktionen ausführen, während Sie sie abstrakt halten.

+0

Vielen Dank für Ihre Hilfe. – MajorJavaUser

Verwandte Themen