NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
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 IT Redactor Gang
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
8.5.2016 16:21
Avatar
coells
Tvůrce
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
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.