- package tRY;
- public class Try {
- public static void main(String[] args) {
- // 创建子类对象
- Zi z=new Zi("zi的构造函数");
- Zi i=new Zi();
- z.show();
- z.fangfa();
- z.nowrite();
- System.out.println(z.num);
- }
- }
- class Fu{
- int num =4;
- Fu(){
- System.out.println("fu的构造函数");
- }
- void fangfa(){
- System.out.println("Fu");
- }
- // 当子类没有复写父类方法,将直接继承。
- void nowrite(){
- System.out.println("没有复写");
- }
- }
- class Zi extends Fu{
- // 与父类相同的变量名覆盖父类变量
- int num =5;
- // 调用super表示父类对象的引用
- Zi(String a){
- // 子类构造函数默认第一行有一条隐式语句 super();
- System.out.println("覆盖父类变量::"+a);
- }
- Zi(){
- System.out.println("zi的空参数构造函数");
- }
- void show(){
- System.out.println("引用父类..."+super.num);
- }
- // 与父类相同的函数名是覆盖父类方法
- void fangfa(){
- System.out.println("覆盖父类方法:zi");
- }
- }
- //注意:子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
- //静态只能覆盖静态。
- //在对子类对象进行初始化时父类的构造函数也会运行;
- //因为子类中所有的构造函数默认第一行都是 super();
- //super();会访问父类中空参数的构造函数,该语句必须写在子类构造函数的第一行。
- // final关键字:
- //final可以修饰类,方法,变量。
- //final修饰的类不可以被继承。
- //final修饰的方法不可以被覆盖。
- //final修饰的变量是一个常量。只能被赋值一次。
- //内部类只能访问被final修饰的局部变量。
复制代码 |