5COP088 – Laboratório de Programação Aula 10 – Java 5COP088 Laboratório de Programação Aula 10 Orientação a Objetos com Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr – [email protected] 1 5COP088 – Laboratório de Programação Aula 10 – Java Sumário: 1) Classes Abstratas; 2) Interfaces; Sylvio Barbon Jr – [email protected] 2 5COP088 – Laboratório de Programação Aula 10 – Java Classes Abstratas -Uma classe não pode ser final e abstract; -Uma classe abstract não pode ser instanciada; -Uma classe com somente um método abstract deve ser declarada como abstract; -Uma classe abstract pode ter métodos abstracts ou não; -A primeira classe concreta deverá implementar todos os métodos abstracts; -São representadas com letras em itálico na UML. Sylvio Barbon Jr – [email protected] 3 5COP088 – Laboratório de Programação Aula 10 – Java Classes Abstratas Sylvio Barbon Jr – [email protected] 4 5COP088 – Laboratório de Programação Aula 10 – Java Interfaces -As interfaces são contratos que definem o que a classe poderá fazer, mas não diz como. -As interfaces são mecanismos que proporcionam o polimorfismo; -As interfaces podem ser implementadas por qualquer classe; -A interface é como uma classe 100% abstract, mesmo sem declarar os métodos como abstracts; -Uma interface só pode ter métodos abstracts, nenhum método concreto é permitido. -Por padrão os métodos da interface são public e abstract, a declaração explícita é opcional; - Uma classe que implementar uma interface pode ser abstract; Sylvio Barbon Jr – [email protected] 5 5COP088 – Laboratório de Programação Aula 10 – Java Interfaces - Uma classe de implementação não abstract, terá que: - Fornecer implementações concretas de todos os métodos da interface; -Deve seguir todas as regras de sobrecarga válida para os métodos que Implementa; -Uma classe abstrata não precisa implementar os métodos da interface. -Uma classe só pode estender uma classe, mas pode implementar várias interfaces; -Uma interface pode estender uma ou mais interfaces; -As interfaces não podem estender uma classe ou implementar uma classe ou Interface. Sylvio Barbon Jr – [email protected] 6 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 7 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 8 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 9 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 10 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 11 5COP088 – Laboratório de Programação Aula 10 – Java Interface Sylvio Barbon Jr – [email protected] 12 5COP088 – Laboratório de Programação Aula 10 – Java Referências Deitel,P.; Deitel, H. Java Como Programar. 5a edição. SCJP Certificação Sun para programador- Kathy Sierra https://www.youtube.com/watch?v=yfcyeY-jQbI https://www.youtube.com/watch?v=dY99vOs86Jc