1.extends关键字
class A{ void a1(){} void a2(){} } class C { void a1(){} } |
class A extends C{ void a2(){} } 解:通过这样写,A类继承了C类的a1这个方法。可以直接使用a1这个方法(注:和使用本类方法语法一样)。 |
2.多继承
多继承就是C extendsA,B 就是一个儿子有多个爹。这是不允许的,所以java中不支持多继承。C++里边就支持多继承。
3.super关键字
super:超级的意思,父类也称为超类。
访问父类变量:
super.i |
访问父类方法:
super.show(); |
4.重写(复写)
class Fu{ public void show(){ System.out.println("我是父类的show"); } } class Zi extends Fu{ public void show(){ System.out.println("我是子类的show"); } } |
注意事项
1.子类重写父类方法时(重写时一般不会更改权限),必须保证子类的权限大于或等于父类权限,否则报错!
2. 静态只能重写静态;
5.重载和重写的区别
重载:只看同名函数的参数列表;
重写:子类父类的方法要一模一样(包括返回值类型和参数列表)
重载:
publicclass Person { public Person(){ } public Person(String name){ } publicvoid show(){ } publicvoid show(inti){ } } |
只要方法名一样,参数列表不一样的,就叫重载;
重写:就是有继承关系,子类重写父类的方法。方法名和参数列表包括返回值都得一模一样
5.抽象类
1.关键字 abstract
2.语法
<1>修饰类
01. abstract class 类名 (){ } // 不能实例化(new 类名);
<2>修饰方法
01.abstract void show(){} //含有方法的类必须是抽象类 子类必须重写这个方法
6.如何使用一个继承体系的功能。
查阅父类功能,创建子类对象调用方法。
原因:
1.有一些父类可能是抽象类,不能创建对象。
2.子类的方法比父类多,可以用自己独有的方法,也可以用所有父类的方法。