• 关键字(权限修饰符、static、final、native、abstract)


    final:最终
    final是一个修饰符

    final可以修饰:
    (1)类:包括内部类和外部类
    (2)方法
    (3)变量:包括属性和局部变量

    1.final修饰类
    表示这个类不能被继承,是个太监类,没有子类

    2.final修饰方法
    表示这个方法可以被子类继承,但是不能被子类重写

    3.final修饰变量
    表示它是一个常量,值不能被修改

    native:原生的,内置的
    是一个修饰符,只修饰方法

    native修饰的方法,说明不是用Java语言实现的方法体,而是用C语言等实现的,用C语言实现后,编译为.dll文件,然后由Java代码调用。

    对于使用这个方法的人来说,没有区别,和普通的Java方法一样
    该怎么调用就怎么调用,子类继承后如果需要重写,就可以重写。

    调用方法的规则:
    (1)静态的用类名,非静态的用对象
    (2)有形参,传对应个数、类型的实参
    (3)有返回值就接收,没有返回值就不接收

    1.权限修饰符:
    public protected 缺省 private
    public/缺省:修饰类(包括内部类和外部类)、方法、属性、构造器
    protected/private:修饰内部类、方法、属性、构造器

    2.static
    修饰:内部类、属性、方法、代码块

    3.final
    修饰:修饰类(内部类、外部类)、属性、方法、局部变量

    4.native
    修饰:方法

    总结:
    构造器只允许权限修饰符
    局部变量:只允许final

    5.abstract:抽象的
    abstract也是修饰符,可以修饰:类(外部类和内部类)、方法
    (1)为什么要使用抽象类和抽象方法
    当我们在设计父类时,发现某些方法是无法给出具体的实现,具体的实现应该在子类中实现,那么这样的方法,在父类中就可以设计为抽象方法。包含抽象方法的类,必须是一个抽象类。

    (2)抽象类、抽象方法的语法格式
    【权限修饰符】 abstract class 类名{
    【权限修饰符】 abstract 返回值类型 方法名(【形参列表】);
    }

    (3)抽象类的特点
    》抽象类不能直接new对象
    》抽象类就是用来被继承的,那么子类继承抽象类后,必须实现抽象类的所有抽象方法,否则子类也得是抽象类。
    》抽象类的变量可以与子类的对象构成多态引用,执行子类重写的方法
    》抽象类可以和普通类一样,拥有:属性、构造器、代码块、非抽象的方法等成员,这些给子类可以用。
    》一个类如果有抽象方法,这个类必须是抽象类,但是一个抽象类也可以没有抽象方法,目的就是不能创建对象。

    需求:
    设计一个图形类Graphic,这个图形类有很多子类:Rectangle矩形、Circle圆形、Triangle三角形等,这些图形有图形名称,图形的面积、图形的周长,既然所有的子类有共同的特征,那么这些共同的特征应该设计到父类图形类Graphic中,因为父类就是代表所有子类共同的部分。

    类:一类具有相同特征的事物的抽象描述。

    1.权限修饰符
    public,protected,缺省,private
    (1)private和abstract不能同时修饰方法,因为private的方法在父类中不可见,无法重写。
    (2)private和abstract可以同时修饰成员内部类。
    2.static
    static修饰属性、方法、代码块、内部类
    abstract修饰方法、类

    两者组合可以修饰内部类
    但是不能同时修饰方法,因为static的方法不能被重写,并且static的方法直接用“类名.”调用,没有方法体执行。

    3.final
    修饰方法:final和abstract不能同时修饰方法,final是表示不能被重写,abstract必须被重写。
    修饰类:final和abstract不能同时修饰类,final表示不能被继承,abstract就是用来继承的。

    4.native
    修饰方法:native和abstract不能同时修饰方法,native是表示方法体由C语言实现,abstract表示无方法体,由子类实现。

  • 相关阅读:
    HTML标签,简单归纳
    表单<form></form>提交方式的区别
    Angular实战记录
    JavaScript常用编程问题记录
    Observable 的 Operators集合
    一些重要的学习资料
    周末
    vue2.0传值问题
    javascript日常学习小记
    web前端经典小题
  • 原文地址:https://www.cnblogs.com/1185937986-jili/p/12865349.html
Copyright © 2020-2023  润新知