成员变量与局部变量的区别:
封装:使用不同的访问权限,将类的成员变量访问权限设置为私有(隐藏某些信息,不可直接进行访问)
设置加入private将构造方法私有化
继承:当类之间有许多属性和方法相同时,直接继承大类即可(类似于static)
方法:
[修饰符] class 类B extends 类A{…}
B为子类/派生类,A为父类/基类
使类和类之间产生is -a的关系
子类会继承父类所有的实例变量和实例方法
子类不能直接访问父类private的变量和方法
Java支持多层继承
Java只支持单继承,不支持多重继承(猫只能继承一个动物类,不能再继承生物类)
java.lang.Object是类层次结构的跟类,即所有类的父类,当没有显示继承其他类时,默认继承Object类
方法重写
当父类某个方法不是十分符合子类所需时,可以对此方法用相同的名字在子类中重新写一遍,在调用时会调用子类中的此方法,子类方法会覆盖父类方法
注意:构造方法和静态方法不能重写,成员变量不存在重写
方法重写规则:
1.子类重写方法必须和父类中被重写方法名称,参数列表相同
2.返回值一致
3.子类方法访问权限不能小于父类(父类私有方法不能重写,跨包的父类默认权限的方法也不能重写)
编译时不能确定具体的调用方法,而在程序运行时,才能确定具体的被调用的方法
默认权限:包内部访问权限。即包内其他类可以访问该类,但是该类在包外部的其他类不能访问
区分重载:一个类的多态性表现,而方法重写是子类与父类的一种多态性表现
@Override使用说明:
@Override是java中的注解标签,用来标记,写在方法上,表示此方法是从父类中重写而来,用来检测是不是满足重写方法的要求,这个注解就算不写,只要格式满足要求,也是正确的方法覆盖重写。建议保留,这样编译器可以帮助我们检查格式,另外也可以让阅读源代码的程序员清晰的知道这是一个重写的方法。
super关键字:
super来调用父类中的指定操作:
super可以访问父类中定义的属性,成员方法,可以用于在子类构造器中调用父类的构造器
super不是父类对象,只是引用,仍属于子类对象
继承中的构造方法:
子类不会继承父类的构造方法,只能通过super(形参)来调用父类指定的构造方法
规定super(形参),必须声明在构造器的首行
无super出现时,子类默认调用super,即父类中的空参构造器