内部类一个重要的特性:
内部类可以继承一个与外部类无关的类,保证了内部类的独立性,正是基于这一点,多重继承才会成为可能。
demo
入口类
package com.other;
import org.junit.Test;
import principle.interface_segregation_principle.C;
/**
* 通过内部类来实现多重继承
*/
public class Client {
@Test
public void test(){
Cat cat = new Cat();
cat.climb();
cat.comprehend();
}
}
具体类猫,通过 内部类实现 宠物、猫科 两个抽象类的继承
package com.other;
/**
* 猫 通过内部类实现多继承
*/
public class Cat {
private class Felidae1 extends Felidae{
}
private class Pet1 extends Pet{
}
/**
* 爬树方法
*/
public void climb(){
Felidae1 felidae1 = new Felidae1();
felidae1.setLevel("非常");
felidae1.climb(); //实现继承
}
/**
* 宠物陪伴
*/
public void comprehend(){
new Pet1().comprehend();//实现继承
}
}
猫科抽象类
package com.other;
/**
* 猫科动物抽象类
*/
public class Felidae {
private String level;
public void setLevel(String level) {
this.level = level;
}
public void climb(){
System.out.println(String.format("%s会爬树",level));
}
}
宠物抽象类
package com.other;
/**
* 宠物抽象类
*/
public class Pet {
public void comprehend(){
System.out.println("能长期生活在室内陪伴主人,与主人同喜同悲。");
}
}