1.Final:
最终的,不可改变------单独应用几率低
修饰变量:变量不能被改变
修饰方法:方法不能被重写
修饰类:类不能被继承
2.static final常量:
应用率高 ,必须声明同时初始化=(赋值),通过类名打点来访问,不能被改变,建议:常量名所有字母都大写,多个单词用分割线分割,编译器在编译时会将常量直接替换为具体的值,效率高
何时用:数据永远不变,并且经常使用
抽象类:由abstract修饰,包含抽象方法的类必须是抽象类,抽象类不能被实例化(不能创建对象new,可以创建数组new 数组对象),抽象类需要被继承的,派生类
注意:抽象子类要么在继承时声明为抽象类,要么实例化方法
抽象类的意义:封装共有的属性和行为---------代码复用,为所有派生类提供统一的类型--------向上造型------代码复用,可以包含抽象方法,为所有派生类提供统一的入口(能点出来)派生类的行为不同,但是入口一致的,同时相当于定义一个标准
抽象方法:由abstract修饰,只有方法定义没有方法实现(只有方法定义,没有方法实现)
补充:
1.设计规则:
将派生类所共有的属性和行为,抽象超类中------抽共性
派生类的行为都一样,则设计为普通方法
派生类的行为不一样,则设计为抽象方法
2.抽象方法的存在意义是什么?
保证当时发生向上造型时,通过超类型的引用能点出来那个方法
既然意义只在于能点出来,那为什么不设计为普通方法?
若设计为普通方法,则派生类可以重写也可以不重写,而设计为抽象方法,可以强制派生类必须重写----做了个标准,强制必须重写