Java 中的抽象类 – 带有示例

已发表: 2022-06-24

数据抽象是隐藏某些信息并仅向用户显示所需细节的技术。 这种数据抽象可以通过两种方式实现,抽象类和接口。

目录

Java中的抽象类是什么?

Java 中的抽象类是用 abstract 关键字封装或声明的受限类。 抽象类可以同时具有抽象方法和非抽象方法。 它不能用于创建对象。 要访问一个抽象类,它必须从另一个类继承。

从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

抽象类规则

  • 抽象类只能在抽象关键字中声明。
  • 它可以包含抽象方法和非抽象方法。
  • 它也可以有 final 方法。
  • 它永远不能被实例化。
  • 也可以使用构造函数和静态方法。

抽象类的例子:

抽象类 B{}

Java中的抽象方法

此方法只能在抽象类中使用,并且不包含主体。 主体将由继承的子类提供。

抽象方法的一个例子是:

抽象无效打印状态(); //没有方法体和抽象

带有抽象方法的 Java 抽象类示例

在以下示例中,汽车是一个抽象类,具有一个抽象方法 run。 该实现由 Audi 类提供。

抽象类汽车{

抽象无效运行();

}

Audi4 类扩展 Bike{

void run(){System.out.println(“运行良好”);}

公共静态无效主要(字符串参数[]){

汽车 obj = new Audi4();

obj.run();

}

}

程序的输出将是“运行良好”。

大多数情况下,实现类是未知的(数据抽象),通过工厂方法获得实现类的一个对象。

返回类实例的方法称为工厂方法。

带有工厂方法的 Java 抽象类示例

在下面的示例中,创建 square 类的实例, Square 类的 draw() 方法被启动。

抽象类形状{

抽象的无效绘制();

}

//在实际场景中,实现由其他人提供,即最终用户未知

类方形扩展形状{

void draw(){System.out.println(“绘图方块”);}

}

类 Circle1 扩展形状{

void draw(){System.out.println(“绘制六边形”);}

}

//在实际场景中,方法由程序员或用户调用

类测试抽象1{

公共静态无效主要(字符串参数[]){

Shape s=new Circle1();//在实际场景中,通过方法提供对象,例如getShape()方法

s.draw();

}

}

上述程序的输出将是“绘制六边形”。

软件工程的热门课程和文章

热门节目
软件开发执行 PG 计划 - IIIT B 区块链证书课程 - PURDUE 网络安全证书计划 - PURDUE 计算机科学理学硕士 - IIIT B
其他热门文章
2021-22年美国云工程师薪水 美国 AWS 解决方案架构师薪水 美国后端开发人员工资 美国前端开发人员薪水
美国网络开发人员的薪水 2022 年 Scrum Master 面试问题 如何在 2022 年开始网络安全职业? 工程专业学生在美国的职业选择

什么时候应该在 Java 中使用抽象类?

下面是一些可以使用抽象类的场景:

  • 当试图通过使用基类的通用方法在代码中引入继承的概念(在各种相关类之间共享代码)时。
  • 当要求具体且实施细节不完整时。
  • 当用于扩展抽象类的类具有多个需要非公共修饰符的公共字段或方法时。
  • 当使用非最终或非静态方法来修改对象状态时。

何时在 Java 中使用接口进行抽象?

以下场景需要Java接口来实现抽象:

  • 支持多重继承的功能
  • 实现松耦合

声明一个接口

接口只能通过 interface 关键字声明。 这导致了完全抽象,因此所有继承方法都在一个空主体中声明,并且所有字段默认为 public、static 和 final。 实现接口的类应该实现接口中声明的所有方法。

Java 接口示例

在下面的示例中,可打印接口只有一个方法,其实现在 A6 类中提供。

界面可打印{

无效打印();

}

A6 类实现可打印{

公共无效打印(){System.out.println(“欢迎”);}

公共静态无效主要(字符串参数[]){

A6 obj = 新 A6();

obj.print();

}

}

该程序的输出将是

欢迎。

示例 2:

接口银行{

浮动利率();

}

BOI 类实现银行{

公共浮动 rateOfInterest(){return 8.5f;}

}

CUB 类实现 Bank{

公共浮动 rateOfInterest(){return 9.2f;}

}

类测试接口2{

公共静态无效主要(字符串[]参数){

银行 b=new BOI();

System.out.println(“投资回报率:“+b.rateOfInterest());

}}

上述程序的输出将是

投资回报率:8.5

Java中抽象的优点

  • 松散耦合: Java 中的抽象通过以指数级减轻依赖实体来帮助松散耦合。
  • 可重用代码: Java 中的抽象类非常节省时间。 只有在必要时才能调用抽象方法。 抽象类避免重写相同的代码,从而节省时间。
  • 数据保护: Java 中的数据抽象有助于向用户隐藏敏感的代码细节。 它有助于隐藏重要的项目功能并仅显示基本组件。
  • 更快地解决问题:借助动态方法解析,只需使用一种抽象方法即可解决各种问题和复杂性。

要了解有关 Java 和软件开发中的数据抽象的更多信息,请注册IIIT Bangalore 与 upGrad 联合提供的软件开发高级研究生课程

软件开发行政研究生课程是一个为期 13 个月的在线课程。 该课程专为在职专业人士设计,让他们专注于学习而不放弃工作。 课程包括基于行业的项目和案例研究。 此外,该计划还有超过 10 场行业专家的现场会议,以帮助候选人及时了解行业的当前趋势。

我们可以有一个没有任何抽象方法的抽象类吗?

是的。 可以有一个没有任何抽象方法的抽象类,因为它们都是独立的技术。 声明一个抽象类意味着它不能自己实例化,只能在子类的帮助下完成。 定义抽象方法意味着该方法被定义或包含在子类中。

为什么数据抽象很重要?

是的。 可以有一个没有任何抽象方法的抽象类,因为它们都是独立的技术。 声明一个抽象类意味着它不能自己实例化,只能在子类的帮助下完成。 定义抽象方法意味着该方法被定义或包含在子类中。

数据抽象与控制抽象有何不同?

数据抽象是创建复杂和复杂的数据类型但仅突出或显示基本细节的过程。 控制抽象是处理抽象的软件部分的过程。 这是程序被分解或简化的过程,程序执行的不需要的细节被隐藏起来。 控制抽象主要用于生成新功能并将各种控制语句混合到单个实体中。