• java中的抽象类


    抽象类的概念

      有抽象方法的类就是抽象类,用abstract修饰

    抽象方法的概念

      只有方法声明,没有方法体的方法。用abstract修饰

    抽象方法的由来

      当需要定义一个方法,却不明确方法的具体实现时,可以将方法定义为avstract,具体实现延迟到子类

    抽象类的特点

       修饰符:必须用abstract关键字修饰

           格式:修饰符 abstract class 类名{} (pubilc avostract calss animal{})

              修饰符 abstract 返回类型 方法名{}  (public avstract void eat();)

      抽象类不能被实例化,只能创建子类对象

        抽象类怎么实例化呢?

        可以同过创建其子类对象来完成初始化操作

      抽象类子类的两个选择

      • 如果是普通类,则需要重写父类的所有抽象方法
      • 如果是抽象类,则不用

    抽象类成员的特点  

    • 成员变量

        可以有普通的成员变量(可以被修改)

        也可以有成员常量(final)(不可被修改)

    • 成员方法

        可以有普通方法,也可以有抽象方法

        抽象类不一定有抽象方法,有抽象方法的类一定是抽象类(或接口)

    • 构造方法

        像普通类一样有构造方法,且可以重载

    代码演示:

      首先定义一个抽象类

    package dome3;
    //抽象类
    public abstract class Aaimal {
        //抽象方法
        public abstract void eat();
    }

      创建一个类继承自这个抽象类

    package dome3;
    
    public class Dog extends Aaimal{   //普通类继承抽象类,必须要重写抽象类中的方法    需要注意的是,抽象类继承抽象类,则不需要重写
    
        @Override
        public void eat() {
            System.out.println("啃骨头"); 
        }
    }

       测试类

    package dome3;
    
    public class Test {
        public static void main(String[] args) {
            Aaimal an = new Dog();    //通过多态创建类对象
            an.eat();  //调用类中的方法
        }
    }
  • 相关阅读:
    表字符集与存储过程字符集不一致导致的存储过程执行缓慢
    自动类型转换与强制类型转换
    集合中的对象与引用
    54. 螺旋矩阵
    [算法] 二分查找(C++)
    [MySQL优化] 需要创建索引和不要创建索引的情况
    [Spring Cloud] Nacos注册中心服务分组
    mysql导入大sql文件
    [Spring Security] 前后端分离项目中后端登录代码的简单示例
    URL中含特殊字符传参
  • 原文地址:https://www.cnblogs.com/zxy6/p/14236225.html
Copyright © 2020-2023  润新知