黑马程序员技术交流社区
标题:
内部类继承
[打印本页]
作者:
杨盼
时间:
2012-2-28 20:01
标题:
内部类继承
内部类如何继承,什么情况下会用到内部类继承,求详解
作者:
李晓俊老师
时间:
2012-2-28 20:07
这种情况在java中很少见把,到现在我还没见到一个,如果父类的内部类在成员位置上,那就和普通成员被继承是一样的,,
如果在方法里,这个就不晓得了
作者:
周峰
时间:
2012-2-28 20:11
我只知道 内部匿名类会在开发Android里面经常用!~ 要是开发Java网页 用的少!~
作者:
田啸
时间:
2012-2-28 20:13
我说一下我知道需要用到内部类的情况:
当你定义的类需要进行多继承时,就需要用到内部类.java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题——没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果。
作者:
田啸
时间:
2012-2-28 20:19
这样啊,我具体举个例子:类一
Java code
public class Example1 {
public String getName() {
return "luffyke" ;
}
}
类二
Java code
public class Example2 {
public int getAge()
{
return 25 ;
}
}
类三
Java code
public class MainExample {
public class Test1 extends Example1 {
public String getName() {
return super.getName();
}
}
public class Test2 extends Example2 {
public int getAge() {
return super.getAge();
}
}
public String showName() {
return new Test1().getName();
}
public int showAge() {
return new Test2().getAge();
}
public static void main(String args[]) {
MainExample example = new MainExample();
System.out.println("姓名:" + example.showName());
System.out.println("年龄:" + example.showAge());
}
}
注意看类三,里面分别实现了两个内部类 Test1,和Test2 ,Test1类又继承了Example1,Test2继承了Example2,这样我们的类三MainExample就拥有了Example1和 Example2的方法和属性,也就间接地实现了多继承。
作者:
杨盼
时间:
2012-2-28 21:10
田啸 发表于 2012-2-28 20:19
这样啊,我具体举个例子:类一
Java code
public class Example1 {
在什么情况下用呢?
作者:
田啸
时间:
2012-2-28 21:17
现在我们手头有铅笔和橡皮擦类,想做一个带橡皮擦的铅笔类,该怎么办?
我们可以复用上边的两个类,问题出现了,我们不能同时继承这两个类,这个时候就可以用内部类来解决这个问题。
1.使用内部类,分别继承铅笔和橡皮擦
2.分别实例化内部类作为成员变量
3.定义方法,调用实例化后内部类的方法
这样带橡皮擦的铅笔类就复用了铅笔和橡皮擦类,同时具有了他们的功能,达到了多继承的效果。 现实中这种问题很多啊,尤其是你想做一个功能比较多的实体的时候
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2