第9章 接口

总结 接口中的域默认为static和final的,有interface.a这样的使用
练习3
创建一个基类,让它包含抽象方法print(),并在导出类中覆盖该方法。覆盖后的方法版本可以打印导出类中定义的某个整型变量的值。在定义该变量处,赋予它非零值。在基类的构造方法中调用这个方法。现在,在main()方法中,创建一个导出类对象,然后调用它的print()方法
基类:

package main.chapter9;

/**
 * 抽象基类
 *
 * @author
 * @create 2019-04-11 上午2:31
 **/
public abstract class  Base {

    public Base() {
        show();
    }

    public abstract void show();
}

导出类:

package main.chapter9;

/**
 * 子类
 *
 * @author
 * @create 2019-04-11 上午2:39
 **/
public class Child extends Base {

    private int i = 123;

    @Override
    public void show() {
        System.out.println(i);
    }
}

测试类:

package main.chapter9;

/**
 * 执行类
 *
 * @author
 * @create 2019-04-11 上午2:33
 **/
public class ExcuteTest {

    public static void main(String[] args){
        Base b = new Child();
        b.show();
//输出0 123
    }
}

解释:
new先执行base的构造方法,调用show,show被覆盖,调用child中的show,此时子类中的变量还没有赋值,使用默认值0。执行b.show,同样被覆盖,调用child中的show,不过此时子类已经完成了构造,输出值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容