Diciamo che avete un abstract class
...
abstract class Vehicle {
abstract public void move();
}
senza mai fare un class Car extends Vehicle
o class Boat extends Vehicle
si può fare questo con la magia delle classi anonime. (che può essere il motivo per cui il javadoc non dice c'è una sottoclasse perché è anonimo e quindi non può essere riferimento l'API pubblica, quale il javadoc rappresenta.)
class Example {
public Vehicle foo() {
Vehicle car = new Vehicle {
@Override
public void move() {
// do some car movement, i.e. driving
}
}
return car;
}
public Vehicle bar() {
Vehicle boat = new Vehicle {
@Override
public void move() {
// do some boat movement, i.e. boating
}
}
return boat;
}
}
Così senza si puo' t istanziare un abstract class
... ma non è tutta la verità, puoi farlo come una classe anonima e implementare i metodi sul posto. Questo tecnicamente non sta istanziando un abstract class
, ma è quello che viene fatto molto quando vedi questo genere di cose.
potrebbero essere privati Inner Class
Anche in questo caso, dire che avete un abstract class
...
abstract class Vehicle {
abstract public void move();
}
Se l'interno class
era private
allora solo la classe che si incassa potrebbe un'istanza. (che può essere il motivo per cui il javadoc non dice c'è una sottoclasse perché è privata e quindi nascosta al API pubblica, quale il javadoc rappresenta.)
class Example {
private class Car extends Vehicle {
@Override
public void move() {
// do some car movement, i.e. driving
}
}
private class Boat extends Vehicle {
@Override
public void move() {
// do some boat movement, i.e. boating
}
}
public Vehicle foo() {
return new Car();
}
public Vehicle bar() {
return new Boat();
}
}
Questo non spiega nulla su un'istanza abstract class
es, ma può aiutare a rispondere su URL
, openConnection
e URLConnection
.
fonte
2015-05-01 14:18:38
Una sottoclasse di 'URLConnection', proprio come hai detto tu. –
La classe concreta del 'URLConnection' restituito è probabilmente contrassegnata come' private'. –
Dai anche un'occhiata a http://stackoverflow.com/questions/2793150/using-java-net-urlconnection-to-fire-and-handle-http-requests. Il concetto polimorfico – mattias