[RESOLVIDO]Classe genérica para o CRUD (Polimorfismo)

Bem gente estou fazendo um projeto para faculdade e quero fazer uma classe genérica para o CRUD, já que ai toda vez que eu for criar um CRUD (cliente, funcionario, etc…) eu extendo ela e sobrescrevo os métodos, só que tenho um problema:

Criei a classe genérica da seguinte forma:


public class Dao {
    
    public void create(){
         
    }
    
    public void read(){
       
    }
    
    public void update(){
    
    }
    
    public void delete(){
    
    }
    
}

Só que métodos como o create, update e delete tem que ter a entrada de parâmetro com o tipo da classe e o read tem que me retorna uma lista daquele tipo.


public class DaoFun extends Dao{
    
    public void create(Funcionario fun){
         
    }
    
    public ArrayList read(){

      ArrayList<Funcionario> listaFun = new ArrayList<>();

      return listaFun;
       
    }
    
    public void update(Funcionario fun){
    
    }
    
    public void delete(Funcionario fun){
    
    }
    
}

(Corrija me se eu falar bobagem) -> Só que a identidade de um método é formada pelo seu nome, parâmetros e aquilo que ele traz ou não como retorno, logo ao fazer a segunda parte do código eu não estou mais usando polimorfismo já que estou mudando a identidade do método e sim estou criando outros métodos certo? Pelo menos é isso que eu penso e o nétbeans manda eu tirar a @Override quando faço algo deste tipo.

Agora vem minha dúvida, se minha ideia acima estiver correta como eu posso criar um classe genérica para meu CRUD, onde eu possa colocar uma entrada de dados genérica para o (create, update e delete) e uma e um retorno genérico para o método read();

Por exemplo:

        public void create (Generico generico){

        }

Já tentei fazer o acima usando a classe Objetc no meu Dao (Objetc obj) e mudar para (Funcionario fun) no meu DaoFun, só que ao fazer isso o netbeans fala para eu tirar o @Override, logo não estou mais usando polimorfismo, então alguém tem alguma solução para que eu possa criar minha classe Dao com parâmetros e retornos genéricos e eu possa aplicar polimorfismo nas minhas classes concretas (DaoFun, DaoCliente, etc)?

É assim que se faz:
http://www.ibm.com/developerworks/java/library/j-genericdao/index.html

eu sei que é meio complexo esse tutorial (utiliza sprng, hibernate, etc.)
tente procurar por generics na internet, caso não consiga entender os exemplos.

Voce pode usar generics, veja um artigo de como funciona.
http://www.tiexpert.net/programacao/java/generics.php

Boa sorte.

Abraços.

Fica com DEUS.

Usando seu exemplo…

public class Dao<T> { public void create(T t){} public T read(Object id){} public void update(T t){} public void delete(T t){} }

public class DaoFun extends Dao<Funcionario> { public void create(Funcionario t){} public Funcionario read(Object id){} public void update(Funcionario t){} public void delete(Funcionario t){} }

Um que funcional é um pouco diferente, pois depende da ferrameta ORM ou JDBC.

Muuiito obrigada a respostas de todos que contribuíram com o tópico, esse negocio de generics era o que eu tava precisando a respostas de vocês ajudaram bastante, beeiiijo amores.