final:最终
1,可以修饰类,函数,变量。
2,被final,修饰的类不可以继承。为了避免子类覆盖复写功能,
final class Demo{}
3,被final 修饰的方法,不可以复写。
final void show1(); //不可复写
void show2(); //可以复写
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。
final int x=3; // x的值只能是3了。
void show(){
final int y=4; // y的值只能是4了。
}
当描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读新,都给这些值取个名字,方便阅读
而这个值不需要改变,所以加上final修饰,作为常量。
常量的书写规范所有字母大写,多个字符由_连接
比如 PI=3.1415926.
public staticfinal double PI=3.14; 这个数据权限足够大了,全局常量,类名调用,值不会变。
5, 内部类定义在类中局部位置上时,只能访问该局部被final修饰的局部变量。
【抽象】
* 当多个类中出现相同功能,但是功能主体不同
* 这是可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体。
* 如[a] 必须用abstract 抽象 表示,同时该类也必须是抽象的,不能创建对象。
*
* 【抽象】:看不懂
* 特点:
* 1,抽象方法一定在抽象类中,
* 2,抽象方法和抽象类都必须被abstract 关键字修饰
* 3,抽象类不可用new创建对象,因为调用抽象方法没意义。
* 4,抽象类中的方法要被使用,要必须【由子类复写】其所有的抽象方法后,建立子类调用。
* 如果子类只覆盖部分抽象方法,那么该子类还是一个抽象类。
*
* 抽象强迫子类去做一些事,比如复写每一个方法。
*
* 抽象类中可以有非抽象方法。
* 子类中需要自己用的在自己类中定义,需要拿来用的在父类中定义。
*
* 抽象类,和一般类的区别
* 没有太大的不同,该如何描述事物就如何描述事物,只不过该事物中出现了一些看不懂的东西。(不具体的东西)
* 这些不确定的部分也是该事物的功能,需要明确出来,但是无法定义主体。
* 通过抽象方法来表示
*
* 抽象类比一般类多了个抽象函数/方法。 就是在类中可以定义抽象方法。
* (特殊:抽象类中可以不定义抽象方法,作用仅仅是让该类不能创建对象。)
* 抽象类不可以实例化(不能new对象。)
*
*/
【例子1】
package DayXuexi;
public class Demo_final {
}
abstract class Student{
abstract void study(); // [a]
}
//初级班
class BaseStudent extends Student{
void study(){
System.out.println(" base studey");
}
}
//高级版
class AdvStudent extends Student{
void study(){
System.out.println("adv study");
}
}
---------- android培训、 java培训、期待与您交流!----------
黑马官网: http://edu.youkuaiyun.com/heima