标签:关键字 成员 方法 功能 创建 ble java基础 存在 需要
有的时候不想别人重写我的方法,使用final关键字修饰该方法,final:最后的,最终的,可以修饰类、修饰函数、修饰变量,修饰类:该类不能被继承;直接写在class关键字前面
修饰函数:函数不能被重写;直接写在函数返回值类型前面;
修饰变量:变量的值不能被修改,可以成为常量;直接写在变量的数据类型前面;
因为被final修饰的变量的值不能改变,所以被fianl修饰的变量有叫做常量;
此时,我们给他的命名的书写规范:全部字母都要大写;多个单词,可以使用下划线(_)分开;
如: private static final double PI = 3.14;
变量的值不能改变,指的是直接保存在变量中的内容不能改变;
如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错;
需求:创建类描述猫和狗的行为;
猫的行为:抓老鼠;吃鱼;
狗的行为:看家;吃骨头;
分析:
因为猫和狗都是动物,所以可以让猫和狗分别继承动物类,然后将共同东西抽取到动物类中;
小结:当事物的功能描述不清,只能表示有这个功能时,就应该使用抽象修饰该功能,这个功能就是抽象的功能;
如果一个类中有抽象的功能,那么这个类也是抽象的类;
a. 抽象类不能实例化
因为抽象类,表示一个描述不清的事物,所以不能实例化;
b.子类继承抽象类,必须实现父类的所有抽象函数,否则子类也是抽象的
抽象类,必须由子类去继承,继承的子类必须实现父类中所有的抽象方法;
c. 抽象函数必须放在抽象类中
因为类中有抽象函数,表示描述不清的功能,所以整个类所描述的事物,也是描述不清的,所以需要将类也定义为抽象的;
c. 注意事项
c.1 抽象类一定是父类吗?
是,因为抽象类就是通过不同的子类向上抽取共性信息得倒的,抽线类必须由子类去继承和重写抽象函数;
c.2 抽象类中有构造方法吗?
必须有,因为抽象类需要由子类去继承,子类实例化的时候,要调用父类的构造函数,抽象类的构造函数作用是初始化本类中的成员变量的;
c.3 抽象类中可以不书写抽象方法吗?
可以;可以只有非抽象的成员;
同样,不能实例化;
c.4 抽象类中可以定义非抽象的方法吗?(抽象类中可以书写普通方法和成员变量)
抽象类中除了抽象函数,还可以定义所有一般类中可以定义的成员;
c.5 抽象关键字abstract不能和哪些修饰符关键字共存?
因为抽象的函数只有被继承的子类重写了,才可以使用,所以不能和private以及final关键字一起使用;
static: 因为静态的函数可以直接使用类名调用,所以也不能使用static修饰抽象函数;
c.6 抽象类什么时候使用?
当描述的功能不确定,不知道具体怎么实现的时候,就需要使用抽象函数,这是类也是抽象的;
不想实例化这个类(包括自己也不行),但是允许别人继承,也可以使用抽象类;
需求:描述Hr和程序员:
有共同的
标签:关键字 成员 方法 功能 创建 ble java基础 存在 需要
原文地址:http://www.cnblogs.com/Kubility123/p/7599424.html