黑马程序员_Java基础[13]_final、抽象类

本文详细解析了Java中final关键字的用途与限制,包括修饰类、方法和变量的特点,并深入探讨了抽象类与抽象方法的概念及其在面向对象设计中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------- android培训 java培训、期待与您交流! ----------


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值