
抽象是面向对象编程(oop)的基本原则之一,它是指系统隐藏复杂实现细节并仅显示基本功能的能力。抽象的目标是通过允许用户关注对象的作用而不是它是如何做的来简化与复杂对象的交互。
实际上,抽象是通过使用抽象类和接口来完成的,它们定义了必须由子类或具体类实现的行为。
抽象有几个好处:
抽象类允许您定义没有实现的方法(抽象方法)和可由子类使用的具体方法。让我们创建一个示例,其中包含一个名为 shape 的抽象类以及子类 circle 和 rectangle。
乐尚商城系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业商城系统。软件具执行效率高、模板自由切换、后台管理功能方便等诸多优秀特点。 本软件是基于Web应用的B/S架构的商城网站建设解决方案的建站系统。它可以让用户高效、快速、低成本的构建个性化、专业化、强大功能的团购网站。从技术层面来看,本程序采用目前软件开发IT业界较为流行的PHP和MYSQL数据库开发技术,基于面向对象的编程
684
// classe abstrata
public abstract class forma {
// método abstrato
public abstract double calculararea();
// método concreto
public void imprimirarea() {
system.out.println("a área é: " + calculararea());
}
}
// subclasse circulo
public class circulo extends forma {
private double raio;
public circulo(double raio) {
this.raio = raio;
}
// implementando o método calculararea
@override
public double calculararea() {
return math.pi * raio * raio;
}
}
// subclasse retangulo
public class retangulo extends forma {
private double largura;
private double altura;
public retangulo(double largura, double altura) {
this.largura = largura;
this.altura = altura;
}
// implementando o método calculararea
@override
public double calculararea() {
return largura * altura;
}
}
public class main {
public static void main(string[] args) {
forma circulo = new circulo(5);
forma retangulo = new retangulo(4, 6);
// imprimindo áreas
circulo.imprimirarea(); // saída: a área é: 78.53981633974483
retangulo.imprimirarea(); // saída: a área é: 24.0
}
}
a área é: 78.53981633974483 a área é: 24.0
接口是实现抽象的另一种方式。它们定义了实现它们的类必须提供的方法,但它们不提供默认实现。
// interface
public interface forma {
double calculararea();
void imprimirarea();
}
// classe circulo implementando a interface
public class circulo implements forma {
private double raio;
public circulo(double raio) {
this.raio = raio;
}
@override
public double calculararea() {
return math.pi * raio * raio;
}
@override
public void imprimirarea() {
system.out.println("a área do círculo é: " + calculararea());
}
}
// classe retangulo implementando a interface
public class retangulo implements forma {
private double largura;
private double altura;
public retangulo(double largura, double altura) {
this.largura = largura;
this.altura = altura;
}
@override
public double calculararea() {
return largura * altura;
}
@override
public void imprimirarea() {
system.out.println("a área do retângulo é: " + calculararea());
}
}
public class main {
public static void main(string[] args) {
forma circulo = new circulo(5);
forma retangulo = new retangulo(4, 6);
// imprimindo áreas
circulo.imprimirarea(); // saída: a área do círculo é: 78.53981633974483
retangulo.imprimirarea(); // saída: a área do retângulo é: 24.0
}
}
A área do círculo é: 78.53981633974483 A área do retângulo é: 24.0
抽象是面向对象编程中的一个基本概念,有助于创建更简单、可重用且更易于维护的系统。通过使用抽象类和接口,开发人员可以隐藏实现的复杂性,允许用户和系统的其他部分以直观的方式与对象交互。理解和应用抽象对于有效的面向对象软件开发至关重要。
以上就是面向对象编程中的抽象的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号