Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: OOP - Třída se ktrou je možná pracovat jen přes interface

Java Java OOP - Třída se ktrou je možná pracovat jen přes interface

Aktivity (1)
Avatar
iqbigbang
Člen
Avatar
iqbigbang:8.5.2016 15:53

Dobrý den,
existuje v Javě nějaký způsob jak vytvořit třídu, kterou nelze použít přímo ale jen pře interface který implementuje?

Odpovědět 8.5.2016 15:53
Say me, why not?
Avatar
Atrament
Člen
Avatar
Atrament:8.5.2016 16:21

Jelikož interface nejde sám o sobě instanciovat, tak nevím jak si představuješ že by to mělo fungovat. Ale když uděláš

NejakyInterface objekt = new ImplementaceNejakehoInterfacu();

tak pak můžeš posílat objektu jenom ty zprávy, které jsou definované v interface.

 
Nahoru Odpovědět  +1 8.5.2016 16:21
Avatar
coells
Redaktor
Avatar
Odpovídá na iqbigbang
coells:8.5.2016 19:26

Ano, jeden ze způsobů jsou anonymní třídy.
Anonymní třída je dostupná pouze v kontextu své definice a přístup k ní je možný pouze přes interface.

public interface HelloFace {
    public void sayHi();
}

public class Program {

    private static HelloFace english() {
        class Hello implements HelloFace {
            public void sayHi() {
                System.out.println("hi");
            }
        }
        return new Hello();
    }

    private static HelloFace czech() {
        class Ahoj implements HelloFace {
            public void sayHi() {
                System.out.println("cau");
            }
        }
        return new Ahoj();
    }


    public static void main(String[] args) {
        HelloFace cz = Program.czech();
        HelloFace en = Program.english();

        cz.sayHi();
        en.sayHi();
    }
}
 
Nahoru Odpovědět  +2 8.5.2016 19:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.