{"id":21901580,"url":"https://github.com/amadr-95/java-abstract","last_synced_at":"2025-07-21T00:33:19.549Z","repository":{"id":188026245,"uuid":"677986175","full_name":"amadr-95/java-abstract","owner":"amadr-95","description":"Abstract class example","archived":false,"fork":false,"pushed_at":"2024-04-25T18:14:40.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T06:17:46.294Z","etag":null,"topics":["abstract-classes","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amadr-95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-13T10:06:18.000Z","updated_at":"2024-04-25T18:32:27.000Z","dependencies_parsed_at":"2023-08-13T11:25:59.163Z","dependency_job_id":null,"html_url":"https://github.com/amadr-95/java-abstract","commit_stats":null,"previous_names":["amadr-95/java-master-abstract-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amadr-95/java-abstract","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadr-95%2Fjava-abstract","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadr-95%2Fjava-abstract/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadr-95%2Fjava-abstract/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadr-95%2Fjava-abstract/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amadr-95","download_url":"https://codeload.github.com/amadr-95/java-abstract/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadr-95%2Fjava-abstract/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266221327,"owners_count":23894966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract-classes","java"],"created_at":"2024-11-28T15:14:22.327Z","updated_at":"2025-07-21T00:33:14.540Z","avatar_url":"https://github.com/amadr-95.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NumberExtractorReport\nThis class allow us to extract only the data from the file \nthat matches a given pattern, which in this case\nis for phone numbers.\n\nHowever, we can enhance this class by making it **abstract**. \nThis class will implement an abstract method that will be filled in \nby subclasses depending on the type of data required to be reported \n(phone numbers, emails, names, etc.). \nThis approach is a much better implementation because it:\n- Avoid code duplication\n- Increases resusability\n- Encapsulate a common functionality in one place\n- Let subclasses implement specific body methods for their purposes\n\n![img](https://github.com/amadr-95/java-master-abstract-example/assets/122611230/f7eeae1b-6ae3-48eb-b0d7-f9815e00a455)\n\nTo see that implementation change to branch [_abstract_](https://github.com/amadr-95/java-master-abstract-example/tree/abstract)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famadr-95%2Fjava-abstract","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famadr-95%2Fjava-abstract","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famadr-95%2Fjava-abstract/lists"}