接口:
实现类1:
实现类2:
抽象类:
子类1:
子类2:
测试类:
在抽象类中我没有通过构造方法为其属性初始化赋值,而是在子类中通过this.父类属性 为父类属性赋值,测试结果和在抽象类中通过有参构造方法为其属性赋值且在子类构造方法中用super调用父类构造方法的结果相同,请问前者(也就是图片中的方法)的写法和后者运行效率上有什么区别?哪种写法更好更规范?谢谢O(∩_∩)O
区别不大
因为所有类如果没声明构造方法,默认是有个无参数构造方法
所以图片中其实是这样的,以子类BomBird构造为例子
public BomBird(ShoutAbility shout_ability)你说的后者写法也没错,效率没有太大区别
写法可以有很多,但是不能说一定要怎么写,多方面考虑
但是更好的是对父类的封装,抽象为父类是为了封装一系列共有通用属性,变量因情况而定可以是private protected修饰,提供set和get方法,这个东西现在没法说清楚,不同的代码环境有不同的写法,只有慢慢积累,你每个写法都要知道,以后在工作中,代码扩展中自然能看出各种写法优劣,才能更面向对象,更具有扩展性!
比如接口定义行为标准,这些东西不是一下就能让你明白的,
欲速不达的道理,主要是平时自己多写写,多看看其他成功代码,想下别人为什么这样写,为什么不那样写,各个的优缺点,慢慢积累