This code gives an error. How can I do this?
interface LongMiau {
}
interface ShortMiau {
}
interface BlackCat {
void miau(LongMiau miau);
}
interface WhiteCat {
void miau(ShortMiau miau);
}
interface GeneralMiau extends LongMiau, ShortMiau {
}
class CatImplementation implements BlackCat, WhiteCat {
//I want only one method - not two
public void miau(GeneralMiau miau) {
}
}
It is possible to do what I want using parametric types:
interface LongMiau {
}
interface ShortMiau {
}
interface BlackCat<Miau extends LongMiau> {
void miau(Miau miau);
}
interface WhiteCat<Miau extends ShortMiau> {
void miau(Miau miau);
}
interface GeneralMiau extends LongMiau, ShortMiau {
}
class CatImplementation implements BlackCat<GeneralMiau>, WhiteCat<GeneralMiau> {
public void miau(GeneralMiau miau) {
}
}
But to use parametric types is not very good when the complexity increases, how can I do it without them???
Thank you very much,
--david