2017-01-27 3 views
-3
connection con = DriverManager getconnection(URL,user,pwd); 

Wie ist das möglich? Hier ist die Verbindung Schnittstelle,Interface-Objekt erstellen und diesem Objekt statische Methode zuweisen?

Wie können wir Objekt der Schnittstelle erstellen?

und dann, nachdem wir die statische Methode Getconnection der Verbindungsmethode Objekt der DriverManager-Klasse zuweisen. Wie funktioniert das alles? Bit verwechseln

wenn der obige Code möglich ist, dann sollte folgendes funktionieren, aber es zeigt Fehler mich

interface h 
{ 
public int r=7; 
public void set(int u); 
} 

class A implements h 
{ 
public static int t=6; 
int y=6; 

public static void get() 
{ 
    System.out.println(t*8); 
} 

public void set(int u) 
{ 
    System.out.println(y*u);  
} 
} 

class S_tatic 
{ 
public static void main(String arg[]) 
{ 

    h l= new h();      // it shows me error 

    h l = A.get();     //if this can be done then what's                                                     

            //meaning of static ? 
} 
} 

jetzt, warum kann ich hier nicht Gegenstand der Schnittstelle schaffen?

und sagt, sobald wir das Interface-Objekt erstellen, dann, wie wir Objekt zu jeder Methode

denke zuweisen können ich uns in folgenden Weise gehen sollen,

l.set(); // bei nicht-statischer Methode

A.get(); // im Fall der statischen Methode

Wenn das wahr ist dann wie funktioniert die erste JDBC-Syntax, die ich hier einschließe?

+0

Schnittstelle kann nicht instanziiert werden, sie kann nur als Referenz für die Objekte von Klassen dienen, die diese Schnittstelle implementieren. –

+0

Vielleicht sollten Sie mit [Was ist eine Schnittstelle?] (Https://docs.oracle.com/javase/tutorial/java/concepts/interface.html) und [Schnittstellen] (https://docs.oracle.com) beginnen /javase/tutorial/java/IandI/creatinterface.html). Schnittstellen sind der Eckpfeiler des Polymorphismus und Sie sollten sich die Zeit nehmen, mehr über sie zu erfahren. – MadProgrammer

+0

Eine Schnittstelle ist ein Vertrag, der angibt, was ein bestimmtes Gerät leisten kann oder bereitstellen wird, es bedeutet, dass Sie sich nie darum kümmern sollten, wie das Interface physikalisch ist implementiert, dass es sich an den angegebenen Schnittstellenvertrag hält – MadProgrammer

Antwort

0

Es gibt nur eine Hauptregel über Schnittstellen: Sie können sie nicht mitnew InterfaceName() initialisieren.

Verletzt dieser Code diese Regel? (Habe ich es zu machen, besser aussehende)

Connection con = DriverManager.getconnection(URL,user,pwd); 

Können Sie sogar das Wort new dort finden? Nein! Dies bedeutet, dass es die Regel nicht verletzt, also kompiliert.

Schauen wir uns den Code:

public static void main(String arg[]) 
{ 

    h l= new h(); 

    h l = A.get(); 
} 

Blick auf die erste Zeile von main, new h()! Du hast die Regel verletzt! Daher kompiliert es nicht. (Die zweite Zeile kann auch nicht kompiliert, da get kehrt void btw)

In der Tat, in der DriverManager.getConnection Methode, könnte es einige Code wie folgt enthalten:

Connection con = new XXXConnection(); 

wo XXXConnection eine Klasse, die Connection implementiert .

0

Schnittstelle, wie das Wort zeigt, ob im Kontext der Sprache oder der realen Welt ein Weg ist, Abstraktion zu erreichen.

Ich möchte Sie nur einmal vorschlagen, die Interface-Konzepte in Java-Referenz durchlaufen: https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

Aus Referenz: In seiner allgemeinsten Form ist eine Schnittstelle eine Gruppe von verwandten Methoden mit leeren Körper.Ein Fahrrad, das Verhalten, wenn als Schnittstelle angegeben ist, könnte wie folgt aussehen:

interface Bicycle { 

    // wheel revolutions per minute 
    void changeCadence(int newValue); 

    void changeGear(int newValue); 

    void speedUp(int increment); 

    void applyBrakes(int decrement); 
} 

In einfachen Worten, wenn Sie sagen, dass wir festlegen, was ein Fahrrad funktioniert über eine Schnittstelle. Aber Implementierungsklassen für z.B. RangerBicycle oder MountainBicycle würde die Echtzeit-Entitäten oder -Objekte für das in der Schnittstelle definierte Verhalten definieren.

Während Sie versuchen, eine Schnittstelle zu instanziieren, zeigt Ihnen der Compiler die Fehlermeldung, dass er den angegebenen Typ nicht instanziieren kann, da es eine Schnittstelle ist.

Ja, Sie können Interface-Referenzvariablen erstellen, die auf die Objekte der implementierenden Klassen verweisen können.

Verwandte Themen