[color=red]1、继承:[/color]子类继承父类所有的成员变量和成员方法,但不能继承父类的构造方法。在子类的构造方法中可用super调用父类构造方法。通过继承,子类拥有了基类所有的成员(成员变量和方法)。
注意:java只支持单继承,不允许多继承(可以有多重继承);子类构造方法第一行必须调用父类构造方法。
[color=red]2、方法重写(可用super.XX()调用被隐藏的方法)[/color]
(1)重写方法的参数列表必须完全与被重写的方法相同,否则不能称为重写,而是重载。
(2)重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
(3)重写的方法所跑出的异常必须和被重写方法的所抛出的异常一致,或是其子类。
(4)重写方法的返回值和被重写的方法的返回值一样。
(5)被重写的方法不能为private,否则在其子类中新定义了一个方法,而不是重写。
(6)静态方法不能被重写为非静态方法。
[color=red]3、访问修饰符[/color]
(1)public 可以被任何类访问;
(2)protected 可以被同一个包中的所有类访问,可以被所有子类访问,子类没有在同一个包中也能访问。
(3)默认 缺省无访问修饰符,只能被当前类的方法访问;可以被同一个包中的所有类访问;
(4)private 如果子类没有在同一个包中,不能访问;
[color=red]4、多态:[/color]存在有三个条件:要有继承、要有重写、父类引用指向子类对象。
静态多态:也成编译时多态,即在编译时决定调用的属性与方法,与是否发生继承没有必然联系(如重载);
动态多态:也称运行时多态,即在运行时确定调用的属性和方法,继承是发动多态的首要前提。
注意:java只支持单继承,不允许多继承(可以有多重继承);子类构造方法第一行必须调用父类构造方法。
[color=red]2、方法重写(可用super.XX()调用被隐藏的方法)[/color]
(1)重写方法的参数列表必须完全与被重写的方法相同,否则不能称为重写,而是重载。
(2)重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
(3)重写的方法所跑出的异常必须和被重写方法的所抛出的异常一致,或是其子类。
(4)重写方法的返回值和被重写的方法的返回值一样。
(5)被重写的方法不能为private,否则在其子类中新定义了一个方法,而不是重写。
(6)静态方法不能被重写为非静态方法。
[color=red]3、访问修饰符[/color]
(1)public 可以被任何类访问;
(2)protected 可以被同一个包中的所有类访问,可以被所有子类访问,子类没有在同一个包中也能访问。
(3)默认 缺省无访问修饰符,只能被当前类的方法访问;可以被同一个包中的所有类访问;
(4)private 如果子类没有在同一个包中,不能访问;
[color=red]4、多态:[/color]存在有三个条件:要有继承、要有重写、父类引用指向子类对象。
静态多态:也成编译时多态,即在编译时决定调用的属性与方法,与是否发生继承没有必然联系(如重载);
动态多态:也称运行时多态,即在运行时确定调用的属性和方法,继承是发动多态的首要前提。