1700441650
1700441651
public Add(int_i, int_j){
1700441652
1700441653
super(_i,_j);
1700441654
1700441655
}
1700441656
1700441657
}
1700441658
1700441659
它首先会调用父类有两个参数的构造函数,而不是无参构造,这是匿名类的构造函数与普通类的差别,但是这一点也确实鲜有人细细琢磨,因为它的处理机制符合习惯呀,我传递两个参数,就是希望先调用父类有两个参数的构造,然后再执行我自己的构造函数,而Java的处理机制也正是如此处理的!
1700441660
1700441661
1700441662
1700441663
1700441665
编写高质量代码:改善Java程序的151个建议 建议41:让多重继承成为现实
1700441666
1700441667
在Java中一个类可以多重实现,但不能多重继承,也就是说一个类能够同时实现多个接口,但不能同时继承多个类。但有时候我们确实需要继承多个类,比如希望拥有两个类的行为功能,就很难使用单继承来解决问题了(当然,使用多层继承是可以解决的)。幸运的是Java中提供的内部类可以曲折地解决此问题,我们来看一个案例,定义一个父亲、母亲接口,描述父亲强壮、母亲温柔的理想情形,代码如下:
1700441668
1700441669
//父亲
1700441670
1700441671
interface Father{
1700441672
1700441673
public int strong();
1700441674
1700441675
}
1700441676
1700441677
//母亲
1700441678
1700441679
interface Mother{
1700441680
1700441681
public int kind();
1700441682
1700441683
}
1700441684
1700441685
其中strong和kind的返回值表示强壮和温柔的指数,指数越高强壮度和温柔度也就越高,这与在游戏中设置人物的属性值是一样的。我们继续来看父亲、母亲这两个实现:
1700441686
1700441687
class FatherImpl implements Father{
1700441688
1700441689
//父亲的强壮指数是8
1700441690
1700441691
public int strong(){
1700441692
1700441693
return 8;
1700441694
1700441695
}
1700441696
1700441697
}
1700441698
1700441699
class MotherImpl implements Mother{
[
上一页 ]
[ :1.70044165e+09 ]
[
下一页 ]