抽象类abstract与final,private

    xiaoxiao2022-07-02  128

    当多个类中出现相同功能,但是功能主题不同, 这时可以进行向上抽取。这时只抽取功能定义,而不抽取功能主体。

    抽象:看不懂。 1, 抽象方法一定定义在抽象类中。 2, 抽象方法和抽象类都必须被abstract关键字修饰。 3, 抽象类不可以用new创建对象。因为调用抽象方法没有意义。 4, 抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。 如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

    抽象类和一般类没有太大的不同。 该如何描述事物,就如何描述事物,只不过该事物出现了一些看不懂的东西。 这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体。 通过抽象方法来表示。

    抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。 抽象类不可以实例化。

    特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

     

    final:最终。 作为一个修饰符。 1, 可以修饰类,函数,变量。 2, 被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。注意 final类中的所有成员方法都会被隐式地指定为final方法。

    3, 被final修饰的方法不可以被复写。同时注意 如果父类的 final修饰的方法设置为private,则子类可以写一个同名的方法,此时 ,该同名的方法不再产生final的报错,而是在子类重新定义了一个方法(注:类的private方法会隐式地被指定为final方法。

    4, 被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。如果final修饰的是一个基本数据类型的变量,那么这个变量的值就定了,不能变了,而如果修饰的是一个引用变量,那么该变量存的是一个内存地址,该地址就不能变了,但是该内存地址所指向的那个对象还是可以变的。还有的人给方法定义的参数是 final类型的,是不想别人在方法内部修改参数的值,如果final修饰的是一个基本类型,那么是可以的,如果修饰的是引用类型,那么便不行了,因为就如上文那个str.append 对象的内容是可以变化的!

    当在描述事物时,一些数据的值是固定的,那么这时为了增强阅读性,都给这些值起一个名字。方便阅读。 而这个值不需要改变,所以加final修饰。作为常量:常量的书写规范所有字母都大写,如果由多个单词组成。 单词通过 _ 连接 5, 内部类定义在类中的局部位置上时,只能访问局部被final修饰的局部变量。

     

    private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类。  1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被private修饰的变量以及方法的。

    2.如果是继承关系呢?  也是不行的,你依然无法通过super来调用被private修饰的方法和变量。

    private关键字只能修饰内部类,不能修饰外部类

    但是,一定要注意了:内部类中方法如果是static的,因此,内部类也要声明为静态的!
    最新回复(0)