面向对象06

本文详细介绍了Java中的final关键字,包括用于变量、方法和类的用途,强调了final变量作为常量的使用规范。同时,讨论了抽象方法和抽象类的概念,解释了它们在代码复用、统一接口和强制重写等方面的重要性。
摘要由CSDN通过智能技术生成

面向对象06

1、final:最终的,不能改变的
  • 修饰变量

    final int a = 1;
            //a = 5; 编译错误,final修饰的变量不能被改变
    
  • 修饰方法

    public class Demo01 {
        public static void main(String[] args) {
        }
        final void show(){
        }
    }
    class TestDemo01 extends Demo01{
        //void show(){ } 编译错误,final修饰的方法不能被重写
    }
    
  • 修饰类

    final public class Demo01 {}
    class TestDemo01 extends Demo01{ 
    }//编译错误,final修饰的类不能被继承
    
     public class Demo01 {}
    final class TestDemo01 extends Demo01{ 
    }//正确,可以当爸爸,不能当儿子
    
    
2、static final:常量
  • 声明同时必须初始化

    final static double Pi;//编译错误,常量在声明时就应该初始化
    
  • 常常通过类名点来访问,不能被改变

  • 命名规则:常量名所有字母都大写,多个单词用_分隔

    public class Demo01 {
        final static double Pi = 3.14;//常量名所有字母都大写
        final static double APP_WIDTH = 10;//多个单词用_分隔
    }
    class TestDemo01 {
        public static void main(String[] args) {
            System.out.println(Demo01.Pi);//通过类名点来访问
            //System.out.println(Demo01.Pi = 5); 编译错误,常量不能被改变
        }
    }
    
  • 编译器在编译时,会将常量直接替换为对应的数字,效率高(静态变量存在方法区中,使用时到方法区中获取变量值并使用)

  • 在数据永远不变,并且经常用时使用常量

3、抽象方法
  • 由abstract修饰

  • 只有方法的定义,没有具体实现(连{}都没有)

    这代表这个方法没有意义,必须被重写才能被使用

4、抽象类
  • 由abstract修饰

  • 包含抽象方法的类必须是抽象类(抽象类未必有抽象方法)

  • 抽象类无法被实例化(new 对象)

  • 抽象类需要被继承,派生类:

    • 重写抽象类的所有抽象方法(若有抽象方法)

    • 也声明为抽象类

  • 抽象类的意义

    • 封装共有的属性和行为(代码复用)
    • 为所有派生类提供统一的类型(向上造型)
    • 可以包含抽象方法,为所有派生类提供统一的入口(向上造型后能点出来),同时可以达到强制重写的目的(相当于制定一个标准)-------即要想被统一操作,必须实现继承,只要继承,必须实现抽象方法

补充:

  1. 设计规则:

    • 将派生类所共有的属性和行为,抽到超类中-------------抽共性
    • 若派生类的行为/代码都一样,设计为普通方法
    • 若派生类的行为/代码都不一样,设计为抽象方法
  2. 抽象类(方法)的意义

    抽象方法存在的意义是什么?

    保证当发生向上造型,通过超类的引用能点出来那个方法----------保证能点出方法来

    既然抽象方法的意义是保证能点出来,那为什么不设计为普通方法呢?

    设计为普通方法,意味着派生类可以重写也可以不重写,但设计为抽象方法,则可以强制派生类必须

    重写------------达到强制派生类重写,统一的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值