• Java抽象类快速入门


    文章目录

    一、抽象类引出

    示例:当父类的某些方法 需要声明,但是又不确定如何实现时,可以将其声明抽象方法,那么这个类就是抽象类

    1. package com.java.Abstract_;
    2. public class Abstract01 {
    3. public static void main(String[] args) {
    4. }
    5. }
    6. abstract class Animal{
    7. private String name;
    8. public Animal(String name) {
    9. this.name = name;
    10. }
    11. public void eat(){
    12. System.out.println("这是一个动物,但是不知道吃什么..");
    13. }
    14. }

    二、使用步骤

    1.步骤

    1.将该方法设计为抽象方法

    2.所谓抽象方法就是没有实现的方法,没有方法体
    3.当一个类存在抽象方法,需要将该类声明为abstract类

    4.一般来说,抽象类会被继承,有其子类实现 抽象方法

    1. package com.java.Abstract_;
    2. public class Abstract01 {
    3. public static void main(String[] args) {
    4. }
    5. }
    6. abstract class Animal{
    7. private String name;
    8. public Animal(String name) {
    9. this.name = name;
    10. }
    11. public abstract void eat();
    12. }

    2.快速入门

    代码如下(示例):当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类。

    如何把Animal做成抽象类,并让子类Cat类实现

    1. package com.java.Abstract_;
    2. public class AbstractDetail02 {
    3. public static void main(String[] args) {
    4. }
    5. }
    6. abstract class E{
    7. public abstract void hi();
    8. }
    9. abstract class F extends E{
    10. }
    11. class G extends E{
    12. @Override
    13. public void hi() {//实现E的方法
    14. }
    15. }
    16. abstract class D{
    17. public int n1=10;
    18. public static String name="xiaoming";
    19. public void hi(){
    20. System.out.println("hello");
    21. }
    22. public abstract void hello();
    23. public static void ok(){
    24. System.out.println("ok");
    25. }
    26. }

    注意事项和细节讨论

    1.抽象类不能实例化

    2.抽象类不一定包含abstract方法,也就是说,抽象类可以没有abstract方法

    3.一旦类包含了abstract方法,则这个类必须声明为abstract

    4.abstract只能修饰类和方法,不能修饰属性和其他的

    5.抽象类可以有任意成员,比如 非抽象类方法、构造器、静态属性等等

    6.抽象方法不能有主体

    7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非他自己也声明为abstract类

    8.抽象方法不能使用private final 和static来修饰,因为这些关键字都是和重写相违背的

  • 相关阅读:
    HEC-RAS 1D/2D水动力与水环境模拟技术案例实践及拓展应用
    Android java基础_泛型
    动态链接库(扩展)--调用约定
    Linux 进程终止和等待
    C++的四个cast
    nacos集群配置(超完整)
    【C语言刷LeetCode】592. 分数加减运算(M)
    罗克韦尔AB PLC 通过KEPServer实现与西门子1200PLC的以太网通信
    408 | 【2021年】计算机统考真题 自用回顾知识点整理
    打通Web安全思路:为什么我们需要同源策略?
  • 原文地址:https://blog.csdn.net/qq_45789558/article/details/126968176