zoukankan      html  css  js  c++  java
  • 利用final定义方法:这样的方法为一个不可覆盖的方法。

     

    常量(这里的常量指的是实例常量:即成员变量)赋值:

    ①在初始化的时候通过显式声明赋值。Final int x=3;

    ②在构造的时候赋值。

    局部变量可以随时赋值。

     

    利用final定义方法:这样的方法为一个不可覆盖的方法。

    Public final void print(){}

    为了保证方法的一致性(即不被改变),可将方法用final定义。

     

    如果在父类中有final定义的方法,那么在子类中继承同一个方法。

     

    如果一个方法前有修饰词private或static,则系统会自动在前面加上final。即private和static方法默认均为final方法。

     

    注:final并不涉及继承,继承取决于类的修饰符是否为private、default、protected还是public。也就是说,是否继承取决于这个方法对于子类是否可见。

    Abstract(抽象)可以修饰类、方法

    如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。

    Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。

    Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。

    Final和abstract永远不会同时出现。

     

    当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。

     

    注意比较:

    private void print(){};此语句表示方法的空实现。

    Abstract void print(); 此语句表示方法的抽象,无实现。

     

    如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。

    反之,如果一个类为抽象类,那么其中可能有非抽象的方法。

     

    如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。因为当一个非抽象类继承一个抽象方法的时候,本着只有一个类中有一个抽象方法,那么这个类必须为抽象类的原则。这个类必须为抽象类,这与此类为非抽象冲突,所以报错。

     

    所以子类的方法必须覆盖父类的抽象方法。方法才能够起作用。

    只有将理论被熟练运用在实际的程序设计的过程中之后,才能说理论被完全掌握!

    为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此时可将父类定义成abstract类。如果没有定义抽象的父类,那么编译会出现错误。

     

    Abstractstatic不能放在一起,否则便会出现错误。(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。)

     

    例:(本例已存在CODINGabstractTestClass.java文件中)

    public class TestClass{

      public static void main(String[] args){

    SuperClass sc=new SubClass();

    Sc.print();

    }

    Abstract class SuperClass{

    Abstract void print();}

    }

    class SubClass extends SuperClass(){

      void print(){

    System.out.println(“print”);}

    }

  • 相关阅读:
    SpringBoot集成swagger后出现: Failed to start bean ‘documentationPluginsBootstrapper‘的解决方法
    [转]When allowCredentials is true, allowedOrigins cannot contain the special value “*“
    SpringBoot 集成Swagger后提通过http://localhost:8001/swaggerui.html#/访问得不到页面
    C#窗体开发
    如何查看一个域名所对应的IP地址?
    Vetur can't find `tsconfig.json` or `jsconfig.json` in XXX
    npm 搜索
    查看android 中sqlite数据库的表,发现没有表结构和数据问题
    Another Intro for Cookies
    TypeScript Crash Course: Property Access Modifiers
  • 原文地址:https://www.cnblogs.com/borter/p/10743987.html
Copyright © 2011-2022 走看看