Akkor használjuk ha nem tudjuk milyen példányok jönnek létre.
interface Allat { public void beszel(); } class Macska implements Allat { public void beszel() { System.out.println("Miau"); } } class MacskaGyar { public static Macska newMacska() { return new Macska(); } } class Program01 { public static void main(String[] args) { Macska cirmos = MacskaGyar.newMacska(); cirmos.beszel(); } }
enum AllatFajta { MACSKA, KUTYA } interface Allat { public void beszel(); } class Macska implements Allat { public void beszel() { System.out.println("Miau"); } } class Kutya implements Allat { public void beszel() { System.out.println("Vauu"); } } class AllatGyar { public static Allat newAllat(AllatFajta allatFajta) { if(allatFajta == AllatFajta.MACSKA) return new Macska(); if(allatFajta == AllatFajta.KUTYA) return new Kutya(); return null; } } class Program01 { public static void main(String[] args) { Allat allat = AllatGyar.newAllat(AllatFajta.MACSKA); allat.beszel(); } }
Általánosan használt statikus metódusok: