private方法不是被覆写 而是被隐藏了(这点特别重要 记住了 )
成都创新互联服务项目包括东洲网站建设、东洲网站制作、东洲网页制作以及东洲网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,东洲网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到东洲省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
因为覆写的话 无论怎样访问的是子类的方法 而被隐藏了就不是了 因为A类的fun被B类隐藏 而不是覆写了 所以调用B的print会打印出A的fun
你把A中的fun的private修饰符去掉就会打印出 B的了。
“覆写”和“重写”是一样的,还有叫“覆盖”的,都是override,意思就是父类和子类中的同名同参数的方法,它们之间的关系就是,子类的方法把父类的方法给盖住了(其实不一定是父类,父接口也可以)。
比如动物是父类,人是子类,都有奔跑run()这个方法,人类能够不用四肢在地上奔跑,所以应该重写run()这个方法,让人类直立行走啊!
注意要和另一种区分的就是“重载”,即overload,这是同一个类中同名不同参的方法,它们之间的关系就是,你调用同一个名字,但是传递的是不同的参数,
比如求和sum方法,可以对int类型求和,也可以对double类型求和,这两个方法作用相同,所以起同样的名字。因此sum(int int)和sum(double, double)就是两个重载方法。
Person p1 = this//这里的this是指当前的对象,当前对象理解吗??就是你调这个方法时的对象。p3.equals(p4),当前对象就是p3;
Person p2 = (Person)o;这里不转型怎么比较两个对象里面的属性。
方法的覆写,也称为重写,是面向对象编程时在继承时要用的一项技术。
简单来说,就是在子类中写一个与父类中同名同参的方法,称之为覆盖(也即覆写),可以是对父类方法的补充,也可以写与父类方法完全不同的实现。
覆写的方法与普通方法相比,没有需要特别注意的地方。