Dúvida em Associação de classes

Galera estou com uma dúvida na hora de puxar os atributos da minha classe Endereco
e quando vou setar os dados dentro da minha classe clientes da erro na hora q eu escrevo
especificamente este erro :
Exception in thread “main” java.lang.NullPointerException
at main2.pkg0.Cliente.cadastro(Cliente.java:41)
at main2.pkg0.Main20.main(Main20.java:35)
C:\Users\gabri\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 7 segundos)

import java.util.Scanner;

public class Cliente extends Pessoa implements Cadastro {
    Scanner teclado = new Scanner(System.in);
    
    //Atributos
    private String cpf;
    //Associação
    private Endereco endereco;

    //Metodos Acessores
    public Cliente() {
    }
    
    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Endereco getEndereco() {
        return endereco;
    }








    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }
    @Override
    public void cadastro() {
        System.out.print("Nome: ");
        this.setNome(new Scanner(System.in).nextLine());
        System.out.print("Telefone: ");
        this.setTelefone(new Scanner(System.in).nextLine());
        System.out.print("Cpf: ");
        cpf = new Scanner(System.in).nextLine();
        System.out.print("Bairro: ");
        endereco.setBairro(new Scanner(System.in).nextLine());
        System.out.print("Rua: ");
        endereco.setRua(new Scanner(System.in).nextLine());
        System.out.print("Numero: ");
        endereco.setNumero(teclado.nextInt());
        
    }

    @Override
    public void excluir() {


    }
    
}

Você esqueceu de inicializar o atributo endereco.