面向对象编程:深入理解抽象类和关键字

这篇具有很好参考价值的文章主要介绍了面向对象编程:深入理解抽象类和关键字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


面向对象编程:深入理解抽象类和关键字,Java学习路线,java,jvm,开发语言

在Java编程中,我们经常会遇到一些特殊的关键字和概念,其中包括static、final以及抽象类等。本文将深入探讨这些关键字和概念的作用和使用方法,并通过一个实例展示抽象类的应用。
面向对象编程:深入理解抽象类和关键字,Java学习路线,java,jvm,开发语言

1. 关键字

1.1 static
  • static修饰成员变量:表示该成员变量属于类,不属于对象,所有对象共享一份。
  • static修饰成员方法:表示该方法属于类,不属于对象,通过类名直接调用。
  • 什么时候使用static:当所有对象共享一个属性或方法时,可以使用static修饰。
1.2 final
  • final修饰类:表示该类不能被继承。
  • final修饰方法:表示该方法不能被子类重写。
  • final修饰成员变量:表示该成员变量在初始化后不能再修改。
  • final修饰局部变量:表示该局部变量在初始化后不能再修改,使用前必须进行初始化。
1.3 static final
  • 修饰成员变量:表示该成员变量是一个常量,其值在初始化后不能再修改。

面向对象编程:深入理解抽象类和关键字,Java学习路线,java,jvm,开发语言

2. 抽象类

2.1 抽象类的推导过程
  • a.由于方法体没有意义,需要干掉方法体。
  • b.添加abstract关键字在方法上,使方法成为合法的抽象方法,方法体依然不完整。
  • c.当前类也不完整,需要添加abstract关键字在class前,使类变得合法,当前类依然不完整。
2.2 抽象类能否创建对象?
  • 抽象类不能直接创建对象,只能用于被继承。
2.3 抽象类的意义
  • 抽象类需要有子类继承,并且重写父类的抽象方法。
  • 子类继承抽象类,可以是普通类,也可以是抽象类。
2.4 判断
  • 有抽象方法的类一定是抽象类。
  • 抽象类中不一定有抽象方法,可以有普通方法。

3. 案例:计算圆形和长方形的周长及面积

现在,我们通过一个实例来应用抽象类的概念,计算圆形和长方形的周长和面积。

abstract class Shape {
    abstract double perimeter();
    abstract double area();
}

class Circle extends Shape {
    double r;

    Circle(double r) {
        this.r = r;
    }

    @Override
    double perimeter() {
        return 2 * Math.PI * r;
    }

    @Override
    double area() {
        return Math.PI * r * r;
    }
}

class Rectangle extends Shape {
    double a;
    double b;

    Rectangle(double a, double b) {
        this.a = a;
        this.b = b;
    }

    @Override
    double perimeter() {
        return 2 * (a + b);
    }

    @Override
    double area() {
        return a * b;
    }
}

public class AbstractClassExample {
    public static void main(String[] args) {
        Shape circle = new Circle(5);
        Shape rectangle = new Rectangle(3, 4);

        System.out.println("圆形周长:" + circle.perimeter());
        System.out.println("圆形面积:" + circle.area());

        System.out.println("长方形周长:" + rectangle.perimeter());
        System.out.println("长方形面积:" + rectangle.area());
    }
}

通过上述实例,我们可以看到抽象类的实际应用。Shape类作为抽象类,包含了计算周长和面积的抽象方法,而Circle和Rectangle类分别继承了Shape类,并重写了父类的抽象方法。通过多态性,我们可以灵活地调用Shape类的子类,并计算出圆形和长方形的周长和面积。

通过本文的介绍,我们深入理解了Java中的抽象类和一些关键字的概念和用法。抽象类作为面向对象编程中的重要概念,可以帮助我们更好地封装和继承,并且通过多态性实现更灵活的代码编写。希望本文对您在学习和应用抽象类方面有所帮助。

有问题或建议的话,欢迎评论区留言交流!!!

面向对象编程:深入理解抽象类和关键字,Java学习路线,java,jvm,开发语言文章来源地址https://www.toymoban.com/news/detail-609334.html

到了这里,关于面向对象编程:深入理解抽象类和关键字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaSE专栏56】Java面向对象编程:深入理解类、对象、属性和方法的核心概念

    博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄

    2024年02月07日
    浏览(40)
  • 第08章_面向对象编程(高级)(static,单例设计模式,理解mian方法,代码块,final,抽象类与抽象方法,接口,内部类,枚举类,注解,包装类)

    回顾类中的实例变量(即非static的成员变量) 创建两个Circle对象: Circle类中的变量radius是一个实例变量(instance variable),它属于类的每一个对象,c1中的radius变化不会影响c2的radius,反之亦然。 如果想让一个成员变量被类的所有实例所共享,就用static修饰即可,称为类变量(

    2024年01月25日
    浏览(49)
  • 【java面向对象中static关键字】

    static修饰成员变量 static修饰成员变量的应用场景 static修饰成员方法 static修饰成员方法的应用场景 static的注意事项 static的应用知识:代码块 static的应用知识:单例设计模式 static静态的意思,可以修饰成员变量,成员方法; static修饰成员变量: 1.有static修饰的成员变量叫做

    2024年02月13日
    浏览(48)
  • java面向对象——继承以及super关键字

    在 同⼀类 中,存在⽅法名相同,参数列表不同(个数、类型或顺序不同)的⽅法互为重载。 在 继承关系 中,⼦类声明⼀个继承⾃⽗类的⽅法名相同、参数列表相同,返回值类型⼀致,访问修饰符相同或 变⼤,抛出异常相同或缩⼩的⽅法称为重写。 重载是编译时多态,重写

    2024年02月12日
    浏览(39)
  • Java面向对象——多态、Object类、instanceof关键字以及final关键字

    总之,多态是面向对象编程中一个非常重要的概念,通过它可以实现统一的接口来操作不同的对象,提高代码的可读性和可维护性。在实际编程中,多态性的使用可以使代码更加灵活和扩展性更强。方法重写是实现多态的基础。 重写如下所示 关于hashCode方法的重写: 重写t

    2024年02月12日
    浏览(69)
  • 面向对象(八)-- static 与 final 关键字 的使用

    目录 1.  static 1.1  static 的概述 1.2  static 修饰的特点 1.3  static 使用时的注意事项:

    2023年04月25日
    浏览(53)
  • Java 面向对象 03 就近原则和this关键字

    对于起名字需要见名知意,所以这个String n 不太合适: 但是如果将n改为name,会与第五行代码的name重复: 运行代码发现,获取后的姓名为默认值,是null 引入就近原则: 此处打印的是age=10,但是如果想使用成员位置的age ,应该使用this 代码: 运行结果: 使用this关键

    2024年01月21日
    浏览(49)
  • 第1关:学习-Java类和对象之static关键字之求圆环面积和周长

    本关任务:已知圆环的大圆半径 R 和 小圆半径 r 的长度分别为 32.0 和 10.0,求该圆环的面积和周长。 圆环面积公式为:S=π(R 2−r 2 ); 圆环周长公式为:C=2π(R+r)。 /** 任务:已知圆环的大圆半径 R 和 小圆半径 r 的长度分别为 32.0 和 10.0,求该圆环的面积和周长。 类名为:Ri

    2023年04月08日
    浏览(58)
  • 【C++干货基地】面向对象核心概念 const成员函数 | 初始化列表 | explicit关键字 | 取地址重载

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!   哈喽各位铁汁们好啊,我是博主鸽芷咕《C++干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的城市有没有这种实惠又全面的零食基地呢?C++ 本身作

    2024年04月23日
    浏览(48)
  • 深入理解C#泛型:new与where关键字全解析

    C#泛型中new和where是重要的,它们都可以用于约束泛型类型参数的限制;它们都用于提高代码的安全性和可用性,它们的作用在很大程度上提高了代码的可读性和可维护性。在这篇文章中,我们将一起了解泛型中的new和where,以及它们之间的区别。 1. new 在C#泛型中

    2023年04月25日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包