面向对象基本知识点

 1、String 声明的是一个地址,当你改变它的值时,不是重新给它赋值,而是重新申请了一个地址。也就说:你是申请另外一个变量。
       String 是不可以变的字符串. StringBuffer 是可变的字符串.
       字符串相加是先相加再开空间。
    
 2、super 与 this 是有区别的:
       this可以用来代表“当前对象”,可用 return 返回。而对于super而言,没有 return super;这样的语句。
       super 主要是为了:在子类中访问父类中的属性 或者 在子类中 调用父类中的方法 而引入的一个关键字。
       
 3、封装:
        1、使变量私有,防止任何人直接进行修改、读取,防止不安全的值,控制访问者权限
        2、提供get和set方法

 4、使用this调用的构造函数:
        1、必须写在构造函数
        2、必须写在第一行
    
 5、ArrayList底层实现是数组,线程不安全,效率高,所以查询快,修改、插入和删除慢
        LinkedList底层实现是链表,线程不安全,效率高,所以查询慢,修改,插入和删除快
        Vector底层也是数组实现的,线程安全,效率低
    
 6、在父类中不确定业务的具体实现的时候,而且所有具体业务都会有此方法,就用抽象方法。
        抽象方法没有方法体。
        抽象类定义:普通方法加上abstract修饰class,则此类为抽象类。
        如果一个类中,只有一个抽象方法,这个类一定是抽象类。
        抽象类一定是父类,抽象类不能被实例化(new 类名())。
        如果一个类继承了抽象类,则必须实现父类的抽象方法,或者也自己定义为一个抽象类。
        
 7、在变量前用final修饰,表示常量,实例变量可以在构造函数中赋值,类变量(静态变量)只能在创建时初始化。
        在定义方法和类时,final与abstract不能同时使用
            The class AbstractClass can be either abstract or final, not both
            The abstract method skill in type AbstractClass can only set a visibility modifier, one of public or protected
        final 单独写在类前面,则该类不能被继承,即没有子类。
        final用在方法前面,表示该类不能被重写。
        ·    Cannot override the final method from AbstractClass
        final 修饰一个变量,有很多种说法,比如不能改变等等,准确的描述是 当一个变量被final修饰的时候,该变量只有一次赋值的机会
        
 8、重载:在同一个类中,方法名相同,参数列表不同的多个方法,与返回类型和修饰符无关
        作用:同一个方法可以做不同的事

 9、接口(没有普通属性,构造方法,普通方法,接口中的变量都是静态常量)
        只有抽象方法的抽象类,可以用接口来表示。
        接口只能包含抽象方法,修饰符为public,abstract,表示同类一系列的动作(方法)
        public abstract void run();
        void shoot();
        默认都是有public abstract。
        一个类实现接口,必须重写接口中所有方法(抽象类除外)
        接口可以多继承。

猜你喜欢

转载自www.cnblogs.com/lxiaoxuan/p/11106883.html