С помощью Java мы можем создать экземпляр класса ActionListener, у которого есть абстрактный метод
Нет, вы не можете создать экземпляр класса, у которого есть абстрактный метод. Что должно произойти, когда вы вызываете этот абстрактный метод?
То, что вы можете сделать, это вы можете создать подкласс этого абстрактного класса, который реализует этот абстрактный метод, и вы можете создать экземпляр этого подкласса, И это именно то, что делает ваш код Java. Ваш Java-код не создает объект ActionListener
. Ваш Java-код создает подкласс из ActionListener
, который переопределяет actionPerformed
и создает экземпляр этого подкласса .
Теперь, конечно, TypeScript поддерживает подклассы, так что вы можете сделать то же самое в TypeScript: создать подкласс, переопределить / реализовать метод, а затем создать экземпляр этого подкласса :
new (class extends ActionListener {
actionPerformed(input: string): string {
return "Hello"
}
})(input => {
// Whatever
});
или вы можете сделать это так:
new (class implements ActionListener {
actionPerformed(input: string): string {
return "Hello"
}
});
Детская площадка здесь.