Uma introdução completa às classes abstratas em Java



Este artigo o ajudará com uma abordagem detalhada para as classes abstratas em Java, juntamente com exemplos para entender o conceito de uma maneira muito melhor.

Classes abstratas em ajudar os usuários a alcançar a abstração, que é a prática mais crucial de programação orientada a objetos seguida durante o processo de design de software. Neste artigo, discutiremos a terminologia de classes abstratas por meio da seguinte súmula.

O que são classes abstratas em Java?

Classes abstratas em atua como um limite entre o método de implementação e sua funcionalidade. É usado para trocar a funcionalidade entre o Concreto membros da classe e o Resumo Classe.





Abstract-Classes-in-Java-Edureka

Classes abstratas são consideradas aquelas classes que ocultam o Implementação de Método detalhes do usuário e mostrar apenas o Funcionalidade do método. Eles são declarados usando a palavra-chave resumo . Esses métodos podem incluir Resumo e Não Abstrato métodos neles.

recursos do java 9 com exemplos

Por que precisamos de classes abstratas em Java?

Precisamos de classes abstratas em Java pelos seguintes motivos:



  • Suporte para classes abstratas Resolução de Método Dinâmico em tempo de execução
  • Eles ajudam os usuários a alcançar Acoplamento solto
  • Classes abstratas separam o Definição de Método do herdado Subclasses
  • Eles fornecem o Funcionalidade padrão do método definido para todas as subclasses
  • Classes abstratas fornecem um Modelo para futuras aulas específicas
  • A classe abstrata permite Código Reutilização

Regras para usar classes abstratas em Java

Para implementar uma classe abstrata em Java, precisamos seguir as regras descritas abaixo:



  • Uma classe abstrata deve ser declarada usando o resumo palavra-chave.
  • As classes abstratas podem incluir resumo e não abstrato métodos.
  • Uma classe abstrata não pode ser instanciado.
  • Eles podem incluir construtores e estático métodos.
  • Uma classe abstrata inclui final métodos.

Maneiras de alcançar abstração em Java

O processo de abstração em Java pode ser alcançado pelos dois métodos a seguir, conforme mencionado abaixo:

  1. Implementando uma classe abstrata
  2. Implementando uma Interface

A sintaxe para classes abstratas

A sintaxe para definir classes abstratas e métodos abstratos é a seguinte:

classe abstrata Edureka {}
classe abstrata Método ()

Exemplos práticos de aulas abstratas

// Abstract Class

package Abstract public abstract class Person {private String name private String gender public Person (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Studying () @Override public String toString () {return ' Name = '+ this.name +' :: Gender = '+ this.gender}}

// Student Class

pacote Abstract public class Student extends Person {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('Not Studying')} else {System.out.println ('Pursuing a Degree in Bachelor of Engineering')}} public static void main (String args []) {Person student = new Student ('Priya', 'Feminino', 0) Pessoa aluno1 = novo aluno ('Karan', 'Homem', 201021) Pessoa aluno2 = novo aluno ('Kumari', 'Mulher', 101021) Pessoa aluno3 = novo aluno (' John ',' Homem ', 201661) student.Studying () student1.Studying () student2.Studying () student3.Studying () System.out.println (student.toString ()) System.out.println (student1.toString ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}

Resultado:

Não estudando
Procurando um diploma em Bacharel em Engenharia
Procurando um diploma em Bacharel em Engenharia
Procurando um diploma em Bacharel em Engenharia
Nome = Priya :: Sexo = Feminino
Nome = Karan :: Gênero = Masculino
Nome = Kumari :: Gênero = Feminino
Nome = John :: Gênero = Masculino

Diferença entre Interface e Classe Abstrata

Interface Classe Abstrata
Pode ter apenas métodos abstratosPode ter métodos abstratos e não abstratos
Tem apenas Variáveis ​​FinaisInclui Variáveis ​​Não Finais
Possui apenas variáveis ​​estáticas e finaisPossui variáveis ​​estáticas, não estáticas, finais e não finais
Não implementará a classe abstrataPode implementar uma interface
Implementado usando a palavra-chave “implementa”Implementado usando a palavra-chave “extends”
Pode estender apenas uma interfacePode estender classes e interfaces Java
Os membros são públicos por padrãoOs membros podem ser privados e protegidos

// Exemplo de classe abstrata

algoritmo merge sort c ++
pacote abstactVSinterface classe abstrata Forma {String objectName = '' Forma (nome da string) {this.objectName = nome} abstrato public double area () abstract public void draw ()} classe Rectangle extends Shape {int length, width Rectangle (int length, int width, String name) {super (name) this.length = length this.width = width} @Override public void draw () {System.out.println ('Retângulo desenhado')} @Override public double area () {return (double) (length * width)}} class Circle extends Shape {double pi = 3.14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Círculo desenhado')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Área do retângulo:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('A área do círculo é:' + circle.area ())}}

Resultado:

Área do retângulo: 600,0
A área do círculo é: 628,0

// Exemplo de interface

java nova data da string
pacote absVSint interface Forma {void draw () double area ()} classe Rectangle implementa Shape {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @Override public void draw () {System.out.println ('Retângulo foi desenhado')} @Override public double area () {return (double) (length * width)}} class Circle implementa Shape {double pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Círculo foi desenhado')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20) System.out.println ('Área do círculo:' + circle.area ())}}

Resultado:

Área do retângulo: 600,0
Área do círculo: 628,0

Com isso, chegamos ao final deste artigo. Espero que você tenha entendido a importância da Abstração, Sintaxe, funcionalidade, Regras de Abstração em Java e exemplos práticos relacionados a elas.

Agora que você entendeu o básico de Java, verifique o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi desenvolvido para dar a você uma vantagem na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com vários frameworks Java como Hibernate Primavera .

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Abstract Classes in Java” e entraremos em contato com você o mais breve possível.