2017-12-01 2 views
-4

Können wir zwei Klasse mit dem gleichen Namen im gleichen Paket, aber unterschiedliche .java-Datei zu machen. Fehler ist: "Der Typ Knoten ist bereits definiert" hier Knoten ist mein Klassenname.können wir machen zwei gleiche Klasse mit dem gleichen Namen im gleichen Paket, aber unterschiedliche .java- Programme

+0

Warum benannt haben Sie zwei Klassen 'Node' im selben Paket? – Kayaman

+0

Sie müssen das Paket auf der Liste ändern, sonst wird jvm verwirrt, wenn Sie den Knoten verwenden möchten, wenn er von jemandem angefordert wird. –

Antwort

-2

Das sieht wie eine teilweise Klassennutzung aus. Sie können es in .NET tun, nicht in JAVA, aber diese Klassen sind dieselbe Klasse in einer anderen Datei. Sehen Sie sich die Verwendung der partiellen Klasse an.

public partial class CoOrds 
{ 
    private int x; 
    private int y; 

    public CoOrds(int x, int y) 
    { 
     this.x = x; 
     this.y = y; 
    } 
} 

public partial class CoOrds 
{ 
    public void PrintCoOrds() 
    { 
     Console.WriteLine("CoOrds: {0},{1}", x, y); 
    } 

} 

class TestCoOrds 
{ 
    static void Main() 
    { 
     CoOrds myCoOrds = new CoOrds(10, 15); 
     myCoOrds.PrintCoOrds(); 

     // Keep the console window open in debug mode. 
     Console.WriteLine("Press any key to exit."); 
     Console.ReadKey(); 
    } 
} 
// Output: CoOrds: 10,15 
+0

Das ist Java, keine Teilklassen dort. – Kayaman

+0

Danke für Ihre Aufmerksamkeit ... –

0

Es ist technisch möglich. Aber nur, wenn Sie den Java-Quellcode (mit demselben Namen/Paket) in separate Quellbäume setzen und diese separat kompilieren.

Und wenn Sie dann die kompilierten Klassen (mit dem gleichen Namen/Paket) in einer Anwendung verwenden möchten, muss die Anwendung mehrere Klassenlader mit anderen Klassenpfaden und anderen funkigen Dingen verwenden.

Und dann führen Sie in alle möglichen merkwürdiges Verhalten; z.B. Ausnahmemeldungen wie "nicht foo.Bar-foo.Bar werfen können"

Do not go there. Es ist besser, verschiedene Klassennamen und/oder andere Paketnamen zu verwenden.

Verwandte Themen