1.extends关键字表示继承

2.旧类叫做:父类、基类、超类

新类叫:子类、孩子类、派生类

3.用super关键字调用父类的方法

4.覆盖override:子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

注意:覆盖一个方法时,子类的方法的可见性不能低于超类方法的可见性。当超类方法为public,而子类方法没写修饰符,则会报错。

5.子类构造器

public Manager(int day,int month)
{   
    super(day,month);//超类构造器必须是第一句
    year=2000;
}

6.this作用:隐式参数(对象本身)的引用,调用该类其他构造器

7.super作用:调用超类的方法,调用超类的构造器;

8.一个对象可以指示多种实际类型的现象称为多态。在运行时可以自动选择适当的方法,称为动态绑定

9.继承可以有多个层次,从某类到其祖先的路径称为该类的继承链。

10.is-a规则的,子类的每个对象也是超类的对象。

替换原则:程序中出现超类对象的任何地方可以用子类对象代替。

11.Java中对象变量是多态的。

12.方法调用的过程:

编译器查看对象的声明类型和方法名。虚拟机为每个类生产了方法表,方便查找方法。

编译器查看方法调用中的提供的参数类型。查找到一个参数类型完全相同的方法叫重载解析。

如果是static、final、private、构造器,编译器明确知道调用什么方法,为静态绑定。如果不是,则要根据隐式参数(对象)进行动态绑定。

虚拟机根据隐式参数的实际类型(根据多态,对象可能是超类或子类)对应的方法。

13.final类不允许继承,final方法子类不能覆盖。

14.小数取天棚:Math.ceil(double a);

取地板Math.floor(double a)

四舍五入Math.round(double a)

15.抽象类:abstract关键字

可以声明抽象类:抽象类可以有具体方法,可以有用abstract声明的抽象方法。

抽象方法:不需要具体实现。

抽象类不能实例化。

子类可以定义所有抽象方法,那这个子类就不是抽象的了。

16.受保护访问:protected

子类的方法可以访问超类的某个字段。

而且受保护字段只能被一个包内的类访问。

17.

public对外完全可见

private对本类可见

protected对包内和子类可见

默认 对包内可见