• java父类与接口有相同的方法


      这是java多态的一个体现,如果一个类classA继承了类classB,有实现了接口interfaceA,并且接口中有方法funA(),且父类classB中也有funA(),那么对于classA来说既可以重写这个方法也可以不重写。

    父类:

    public class MySuperClass {
        public int getData(){
            return 100;
        }
    }

    接口:

    public interface MyInterface{
        public int getData();//与父类重名的方法
        public void todosomethings();
    }

    子类:

    public class MyTest extends MySuperClass implements MyInterface{
        public static void main(String[] args) {
            MyTest mt = new MyTest();
            System.out.println(mt.getData());
            MySuperClass msc = new MyTest();
            System.out.println(msc.getData());
        }
    
        @Override
        public void todosomethings() {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public int getData() {
            // TODO Auto-generated method stub
            return 10;
        }
        
    }

    当继承父类并且同时实现接口的时候会自动提示实现接口独有的方法todosomethings(),并不提示要实现getData()方法,如果此时测试执行getData将会调用父类的方法。
    如果选择自己重写getData方法,那么就会执行自己重写的方法。多态:父类引用指向了子类对象,如何理解这句话父类引用是"MySuperClass msc" 这句话定义了msc这个引用,

    但是它指向的的(=)却是子类的对象 new Mytest(),因此栈空间里的msc指向了堆空间里的Mytest,当执行getData()方法的时候java的JVM会先找子类是否重写了这个方法,如果没有才会执行父类的方法。

    因此执行的结果是:

    10

    10

    这个只不过是自己的流水账,偶尔有一些心得,错误的地方概不负责
  • 相关阅读:
    安装scrapy解决Microsoft Visual C++ 14.0 is required...
    django一对多模型以及如何在前端实现
    django实现分页功能
    django实现搜索功能
    pycharm里生成requirements.txt
    ubuntu中pwntools安装
    获取一个图片的颜色html代码
    对class文件进行反编译
    Django项目将debug模式设置为false时,静态文件出错
    Django中在xadmin中集成DjangoUeditor
  • 原文地址:https://www.cnblogs.com/ashitaka/p/6066527.html
Copyright © 2020-2023  润新知