• Java基础: 抽象类、接口、final关键字、static关键字


    抽象类

    //父类 动物类
    public abstract class Animal {
        //成员变量:值可以改变
        String name = "小黄";
        //成员常量:值不能改变
        final int age = 10;
    
        public abstract void eat();
    }
    //子类 Dog类
    public class Dog extends Animal {
        @Override
        public void eat() {
            System.out.println("吃骨头");
        }
    }
    //子类 Pig类
    public class Pig extends Animal {
        @Override
        public void eat() {
            System.out.println("吃面条");
        }
    }
    // 调用类
    public class Test {
        public static void main(String[] args) {
            Animal d = new Dog();
            Animal p = new Pig();
            d.eat();
            p.eat();
        }
    }
    

    一、抽象类的概念

        包含抽象方法的类。用abstract修饰
    

    二、抽象方法的概念

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

    三、象方法的由来

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

    四、抽象类的特点

    1. 修饰符:必须用abstract关键字修饰
    
            修饰符 abstract class 类名 {}
            public abstract class Animal {}
            修饰符 abstract 返回类型方法名 {}
            public abstract String getName {}
    
    2. 抽象类不能被实例化,只能创建子类对象
    3. 抽象类子类的两个选择
        重写父类所有抽象方法
        定义成抽象类抽象类
    

    五、成员的特点

    成员变量:可以有普通的成员变量也可以有成员常量(final)
    成员方法:可以有普通方法,也可以有抽象方法抽象类不一定有抽象方法,有抽象方法的类一定是抽象类(或接口)
    构造方法:像普通类一样有构造方法,且可以重载
    

    接口

    接口的概念

    接口技术用于描述类具有什么功能,但并不给出具体实现,类要遵从接口描述的统一规则进行定义,所以,接口是对外提供的一组规则、标准
    

    接口的定义

    定义接口使用关键字interface
    interface 接口名 {}
    类和接口是实现关系,用implements表示
    class类名implements接口名
    

    接口创建对象的特点

    1. 接口不能实例化通过多态的方式实例化子类对象
    2. 接口的子类(实现类)可以是抽象类,也可以是普通类
    

    接口继承关系的特点
    1. 接口与接口之间的关系
    继承关系,可以多继承,格式

        接口extends接口1,接口2,接口3...
    
    2. 继承和实现的区别
        继承体现的是“is a”的关系,父类中定义共性内容
        实现体现的是“like a”的关系,接口中定义扩展功能
    

    接口成员的特点
    接口成员变量的特点

        接口没有成员变量,只有公有的、静态的常量:public static final 常量名 = 常量值
    
    接口成员方法的特点
    
        JDK7及以前,公有的、抽象方法:
            public abstract 返回值类型 方法名();
        JDK8以后,可以有默认方法和静态方法:
            public default 返回值类型 方法名() {}
            static 返回值类型 方法名() {}
        JDK9以后,可以有私有方法:
            private 返回值类型 方法名() {}
    

    接口构造方法的特点

    接口不能够实例化,也没有需要初始化的成员,所以接口没有构造方法
    

    final关键字

    final的作用:

    用于修饰类、方法和变量
    修饰类:该类不能被继承,但是可以继承其他的类
    修饰方法:该方法不能被重写不能与abstract共存,不能被重写
    修饰变量:是一个常量,值只能设置一次
    

    static关键字

    static的作用

    用于修饰类的成员:成员变量:类变量成员方法:类方法
    

    调用方式

    类名. 成员变量名; 类名. 成员方法名(参数);
    

    static修饰成员变量特点:被本类所有对象共享

    注意事项

        随意修改静态变量的值是有风险的,为了降低风险,可以同时用final关键字修饰,即公有静态常量(注意命名的变化)
        public final static String DEPART_NAME = "研发部";
    

    static修饰成员方法

    静态方法:静态方法中没有对象this,所以不能访问非静态成员
    
    静态方法的使用场景只需要访问静态成员不需要访问对象状态,所需参数都由参数列表显示提供
  • 相关阅读:
    在VSCode中使用码云
    自定义博客样式
    bolb、bloburl、file、base64间的转换
    html2canvas的使用:vue中将div导出成图片
    vue-to-pdf的使用:vue中将div转换为pdf文件
    早期javac编译器优化
    HttpClient4.3 连接池参数配置及源码解读
    Java编译程序和运行过程详解
    JVM中的常量池详解
    MySQL索引背后的数据结构及原理
  • 原文地址:https://www.cnblogs.com/lin127/p/12612520.html
Copyright © 2020-2023  润新知