Object类,接口类与抽象类

1、Object类
            a、Object类是所有Java的基类,所有的Java类都可以覆写其中的非私有,非静态。
            b、在不明确指定某一个Java类的父类时,该类默认继承Object类。
            c、Object可以引用所有引用数据类型的变量指向的对象。
            d、Object类型的变量,只能调用其对应类型中该类的非私有的,成员变量,或者成员方法,
                  无法直接调用其子孙类中定义的成员变量或方法。
            e、Object类的变量只能用作各种值的通用持有者,要对他们进行专门的操作,需要进行对应的转型。

        2、对象的转型
            a、向上转型:
                父类声明的变量,引用子类实例化的对象,属于向上转型。
                例:Animal animal = new Dog();
                
                向上转型的对象,可以使用子类中,继承于父类的成员变量,或者成员方法。
                向上转型的对象,丧失了对子类中成员方法或者成员变量的调用。如果想直接
                调用子类中的成员变量或者成员方法,则需要显示的强制转换成子类对应的类型。
                
            b、向下转型:
                父类声明的变量,引用子类实例化的对象,此时,将该变量的类型转换为对应子类的类型,则属于向下转型。
                
                向下转型之前,需要先确定,当前变量引用的对象,是否属于需要转型的类型向下转型之后,
                该变量可以使用转换类型下的成员变量或者成员方法。(非private)
        3、抽象类抽象方法
            a、抽象类:可以声明抽象方法的类。
                  在Java面向对象思想中,所有对象,都是通过类来描述的,但是不是所有的类,都是用来描述对象的。
                1、抽象类不能实例化。
                2、抽象类中,可以声明抽象方法,也可以生命非抽象方法。
                3、继承抽象类的非抽象子类,必须实现其抽象方法。
                4、抽象类继承自抽象类,可以不实现其抽象方法。
                5、抽象类定义的变量依然可以引用子类实例化的对象。
            b、抽象方法
                1、一个抽象类中可以定义多个抽象方法
                2、一个抽象类中可以定义多个非抽象方法
        4、接口,interface:一系列行为的封装。
            a、在接口中定义的成员变量,默认为:public static final
            b、接口中不能有非抽象方法,即,不能有具体实现。
            c、接口中声明的方法,默认为:public abstract
            d、接口可以继承接口
            f、类只能实现接口,不能继承接口。
            g、类只能单继承,多实现。
        5、final再续:
            a、修饰类:
                final修饰符修饰的类不能被继承。
                如果一个类,永远不想被继承,那么可以用final修饰符修饰。
            b、修饰变量:
                该变量只能被初始化一次,之后不能再次改变变量的值。
                (PS:成员变量被final修饰符修饰,则必须在声明时,直接显示初始化)
            c、修饰方法:
                该方法则不能被覆写。
                (PS:抽象方法不能使用final修饰符修饰)

你可能感兴趣的:(类与对象)