Java Static 和 extend(继承)的总结

static 关键字
Java 是通过成员变量是否有static修饰来区分是类的还是属于对象的
static == 静态 == 修饰成员(方法或成员变量)属于类本身的
成员变量和方法可以分为:
成员变量:
    (1)静态成员变量(类变量):
        有static修饰的成员变量称为静态成员变量也叫类变量,属于类本身,直接用类的名访问即可
        与类一起加载一次
    (2)实例成员变量
        无static修饰的成员变量称为实例成员变量,属于类的每个对象的,必须用类的对象来访问
        对象多少就加载多少次
成员方法:
    (1)静态方法
        有static修饰的成员方法,属于类本身,直接用类名访问即可
        但是也可以利用对象访问,但不推荐
    (2)实例方法
        无static修饰的成员方法,属于类每个对象的,必须用类的对象来访问
继承(extend):是Java中一般到特殊的关系,是一种子类到父类的关系
被继承的类:父类/超类
继承父类的类:子类
作用:
    “可以提高代码的复用”,相同代码可以定义在父类中
    子类继承父类即可使用父类的方法
特点:
    子类继承一个父类,子类就可以直接得到父类的属性(成员变量)和行为(方法),但是并不是所有父类属性和行为等子类都可以继承
例如:
    子类不能继承父类的构造器:子类有自己的构造器

继承的特点:
    1.单继承:一个类只能继承一个直接父类
        为什么(反证法)
    2.多层继承:一个类可以间接继承多个父类
    3.一个类可以有多个子类
    4.一个类默认直接或间接继承Object类

 引用类型:除了基本数据类型其他就是引用类型
继承后特点
成员变量访问特点:
    若没有特定的指明采用就近原则
成员方法访问特点:
    就近原则,子类会优先使用子类的方法
方法重写
    与方法重载不一样
可以用@Override防止没有成功重写相关方法
子类的重写方法的名称和形参列表要与父类的一致
子类重写方法的返回值类型声明要么与父类一致,要么比父类方法返回值类型范围更小
规范:
    1.加上@Override注解
    2.建议“声明不变,重新实现”
子类构造器:
    默认一定先访问父类有/无参数构造器,在执行子类自己的构造器
类默认存在super(),写不写都是存在的;
子类继承父类,子类就得到父类的属性和行为,当我们调用子类构造器初始化子类对象数据时候,必须先调用父类构造器初始化继承自父类的属性和行为
(先有父类,才有子类)
super调用父类构造器
特点:
    子类全部构造器默认一定会调用父类的无参数构造器

this():借用本类其他的构造器
super():调用父类的构造器
this()和super()只能使用其中一个,并且要放在第一行
经验分享 程序员 微信小程序 职场和发展