首页 > Java > java教程 > 正文

Java 中的抽象

WBOY
发布: 2024-08-30 15:57:18
原创
948 人浏览过

在java技术中主要使用oops概念构建,抽象也是oops(面向对象编程系统)概念之一,被表示为隐藏数据的过程,即它不会显示一些细节,但会显示用户屏幕仅显示与隐藏数据相关的相关信息。 java中的抽象我们可以在“抽象类和接口”的帮助下使用这些概念,这两种类型将在java中同时使用,或者根据用户的要求,我们可以使用任何类型,有时两个进程都会同时使用在程序中使用。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法

抽象将用于 java 程序中使用的两种不同类型的语法。

import packages;
abstract class names
{
-----some logic codes---
}
interface  names
{
----Some logic codes----
}
登录后复制

以上代码是java程序中适用抽象的基本语法。当我们使用抽象类时,它将同时使用抽象和非抽象方法,但接口仅接受非抽象方法。这两个概念之间有一些相似的区别。

如何在 Java 中使用抽象?

在抽象中,它隐藏了java对象中不需要的细节,它只显示有关主题的相关信息,它主要与映射接口中称为map的java集合接口相比,它具有像hashmap这样的派生类,它将存储键值对用户数据使用 get() 和 put() 等方法从后端存储和检索数据。

抽象主要提供两种不同的方式1.数据抽象和2.控制抽象。在数据抽象中,用于创建困难的数据类型,它将用于在屏幕上公开一些有用的内容,包括数据类型。在控制抽象中,用其他编程语言编写某些数据的过程是在不同的场景中多次编写用于存储和检索数据的代码,因此这些类型的数据将被识别并与单个工作组合起来作为控制抽象。

虽然我们使用接口类型来实现抽象,这意味着它很可能必须实现这些,但在抽象类中,在抽象过程中并未完全实现,它必须部分完成。如果我们使用抽象类,如果我们想通过扩展它来将其用于完全或具体这些类中的实例,则无法创建这些类的实例。使用抽象,我们声明的方法实现可能会有所不同,当我们使用 new 运算符创建抽象类的实例时,它会抛出编译错误。

Java 中的抽象示例

以下是下面提到的示例:

示例#1

代码:

public abstract class Main {
private String names;
private String city;
public Main(String nm, String cty){
this.names=nm;
this.city=cty;
}
public abstract void work();
@Override
public String toString(){
return "Names="+this.names+"::City="+this.city;
}
public void changeName(String newNames) {
this.names = newNames;
}
}
public class ClientMain extends Main {
private int empId;
public ClientMain(String nm, String cty, int id) {
super(nm, cty);
this.empId=id;
}
@Override
public void work() {
if(empId == 0){
System.<em>out</em>.println("Invalid name");
}else{
System.<em>out</em>.println("Employees List!!");
}
}
public static void main(String args[]){
//coding in terms of abstract classes
Main m = new ClientMain("siva","tirupur",1);
Main m1 = new ClientMain("raman","chennai",234);
m.work();
m1.work();
//using method implemented in abstract class - inheritance
m1.changeName("Sivaraman");
System.<em>out</em>.println(m1.toString());
}
}
登录后复制

输出:

Java 中的抽象

示例#2

代码:

interface Animals {
public void animalSounds();
public void sleep();
}
class Sample implements Animals {
public void animalSounds() {
System.<em>out</em>.println("Animal Sounds");
}
public void sleep() {
System.<em>out</em>.println("Beep");
}
}
class ClientMain {
public static void main(String[] args) {
Sample s = new Sample();
s.animalSounds();
s.sleep();
}
}
登录后复制

输出:

Java 中的抽象

示例 #3

代码:

@FunctionalInterface
interface SquareofNumbers
{
int numbers(int x);
}
class ClientMain
{
public static void main(String args[])
{
int a = 6;
SquareofNumbers  s = (int i)->i*i;
int result = s.numbers(a);
System.<em>out</em>.println(result);
}
}
登录后复制

输出:

Java 中的抽象

上面的三个例子我们使用了抽象类和接口的基本用法来在java应用程序中实现抽象,最后一个例子我们使用了java中函数式接口的概念来对给定的数字进行平方。函数式接口与接口概念,但因为它不允许在程序中使用多个抽象方法,如果假设我们使用多个抽象方法意味着它将抛出类似“意外的@功能接口注释”的错误,而我们使用功能接口时我们还声明了注释它对于有关数据概念的数据非常有帮助,即当我们需要 Java 中的元数据技术时,我们使用了称为注释的此类技术,并且我们还使用了另一个称为 lambda 表达式的概念,我们在最后一个示例中使用了减少代码空间,代码的冗余变得非常简单,程序的复杂度也降低了,编写复杂的代码很容易理解。

如果我们在类中定义了任何方法,那么我们应该将该类声明为抽象类,并且如果我们扩展抽象类并在内部类中的任何方法中使用,那么我们必须先实现该类的所有方法java技术中的抽象类我们无法创建抽象类的实例我们不能将抽象类声明为java中的final访问修饰符或关键字,因为当我们在抽象类或类中的任何方法中使用final时,它可以在应用程序的整个执行过程中都不会改变。抽象类中也不允许使用私有修饰符,它会影响父子关系继承,在抽象类中应该会受到影响,因为子类不允许使用函数/方法.

结论

以上抽象概念是对oops的基本理解,而我们在java技术中实现同样的概念,它应该与接口和抽象类一起使用来实现抽象,但在java最新版本中,它可能会根据新功能而有所不同.

以上是Java 中的抽象的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!