抽象,封装,继承,多态
         继承:extends关键字表示两个类之间的关系
            1.子类继承父类,继承父类中所有的非私有化的属性和方法
            2.构造方法不能继承
            3.默认编译器提供一个无参的构造,如果显示提供有参的构造则编译器
            不会再提供无参的构造
            4.子类中的构造方法,默认第一行调用父类构造,父类中如果没有无参
            构造则必须显示的在子类构造的第一行调用父类有参构造
            5.子类创建对象会递归的调用父类的构造。
            6.Java中只能实现单继承,C++中可以实现多继承
            
            
        在继承关系中可以对父类中的方法进行重新实现,叫方法的覆盖(重写,override)
        方法重载与方法重写的区别?
        重载(overload):在同一个类中方法名相同参数(类型/个数)不同.
        重写(override):在一个子类继承父类的方法时对父类的方法进行的重写.

        多态:多中表现形态
            行为多态:方法的重载,重写
            引用多态:父类的引用指向子类的对象
            Animal a = new Student();
        
         封装
            1.私有化属性
            2.提供公共的访问属性的方法
                    Getter/Setter
            JavaBean规范
            3.实体类实现序列化接口
                 implements Serializable
                
            4.提供equals方法与hashCode方法
                Object类是所有类的父类,重写equals方法与hashCode
            5.提供重写的toString()
            屏蔽底层方法的实现
        
        new关键字
            1.在内存中开辟空间,存储创建的对象
            2.将创建的对象返回
            Student s = new Student();
            引用类型变量:存储内存地址的变量
            普通基本类型变量:
            3.调用构造创建对象的过程中,会将成员变量初始化
                初始化为零值
                    null,0,0.0,\u0000,false
        final关键字
            最终的
            1.final修饰类,这个类是不能被继承的
            2.final修饰的方法是不能被重写的
            3.final修饰的变量是不可改变的,并且必须在声明的时候初始化
            
        
         static
            静态的
            1.static不能修饰局部变量
            2.static修饰的是表示在类加载进内存的时候执行,
                程序在执行过程中只会执行一次。
            3.static修饰的,不依赖对象的产生而产生,是所有对象共享的
            4.static修饰类,类是静态内部类
            5.static修饰的方法是静态方法,可以直接通过类名调用
                静态方法不能调用非静态的属性
                静态方法不能调用非静态的方法
            6.不能在静态方法中使用this,super关键字
            7.static修饰代码块
                在类加载进内存的时候执行
            
        常量:
            由static和final修饰的public的成员变量,叫常量
            常量的名称一般大写表示
            把经常需要使用的,不会改变的值定义成常量
        return / break
        
        抽象类
            由abstract关键字修饰的类是抽象类
            可以定义抽象方法
            public abstract void eat();
            类继承抽象类,必须实现(重写)父类中的所有的抽象方法
            抽象类继承抽象父类,可以实现父类中抽象方法
            抽可以继承非抽象的普通类
            抽象类不能直接(new)创建对象
            含有抽象方法的类一定是抽象类
            abstract关键字与static不能同时修饰一个方法
            abstract关键字与final关键字不能同时修饰一个方法
            抽象方法不能用private修饰
            
        
        接口(interface)
            接口是一种很特殊的抽象类
            1.接口中定义的都是抽象方法
            2.接口中定义的变量都是常量
            3.默认接口中提供public abstract
            4.接口中定义的成员变量都是常量
                不写,默认成员变量 public static final
            5.类实现接口,必须实现接口中的所有的方法
            6.Java可以通过implements关键字实现多个接口
            7.接口可以继承接口