java内部类之成员内部类,通过内部类实现多继承
2017-12-25 18:30
501 查看
public class MemberInnerClass { public static void main(String[] args){ //创建外部类对象 Outer1 outer=new Outer1(); Outer1.Inner1 inner=outer.new Inner1(); inner.innerShow(); //outer.outerShow(); } } class Outer1{ private String name="张三"; private int num1=10; public void outerShow(){ System.out.println(name); System.out.println(num1); //Inner1 inner1=new Inner1(); //inner1.innerShow(); //System.out.println(num2);//外部类不能直接访问内部类的成员。 } public class Inner1{//内部类可以是私有的,但是不可以通过外部类的对象来获得内部类的对象 private String name="李四"; private int num2=20; //private static int num3=30;//在成员内部类中不能声明静态成员,属性和方法。 private static final int num3=30;//静态常量在内部类中是可以的 public void innerShow(){ System.out.println(name); System.out.println(Outer1.this.name);//内部类可以直接访问外部类的成员和方法,包括私有 System.out.println(num2); //outerShow();//等于Outer1.this.outerShow();只是因为他们没有同名的方法,所有可以省略。 //Outer1.this.outerShow(); } } }
通过成员内部类实现多继承
public class MultiExtendsDemo{
public static void main(String[] args){
C c=new C();
c.showA();
c.showB();
}
}
class A{
public void showA(){
System.out.println("A");
}
}
class B{
public void showB(){
System.out.println("B");
}
}
class C {
private class A1 extends A{
public void showA(){
super.showA();
}
}
private class B1 extends B{
public void showB(){
super.showB();
}
}
public void showA(){
new A1().showA();
}
public void showB(){
new B1().showB();
}
}
实现抽象类和接口中的相同方法
public class Demo2{
public static void main(String[] args){
Son son=new Son();
son.show();
son.show2();
}
}
abstract class Parent{
public abstract void show();
}
interface IShow{
public abstract void show();
}
/*class Son extends Parent implements IShow{
public
}*/
class Son extends Parent{
public void show(){
System.out.println("抽象类中的show方法");
}
private class Inner2 implements IShow{
public void show(){
System.out.println("接口中的show方法");
}
}
public void show2(){
new Inner2().show();
}
}
相关文章推荐
- DAO中使用内部继承实现通过多重属性查看页面中的列表
- JAVA内部类 (成员内部类、局部内部类、匿名内部类、静态内部类、内部类的继承))
- JAVA内部类 (成员内部类、局部内部类、匿名内部类、静态内部类、内部类的继承))
- 继承AbstractRoutingDataSource再通过AOP实现动态数据源切换(转)
- 改进C#代码之22:通过定义并实现接口替代继承
- 不实现继承的抽象成员
- 《通过实验看 Java 中私有成员是否能被继承》续
- Java通过继承Thread类实现多线程 ,处理同一个共享资源
- 黑马程序员——JAVA内部类概述与内部被继承与继承其他类的问题
- MVC扩展控制器工厂,通过继承DefaultControllerFactory来决定使用哪个接口实现,使用Ninject
- 面向对象的Javascript - 通过原型(Prototype)实现继承
- js中通过call()和apply()方法实现继承类
- 宿主机通过桥接方式连接的VMware内部Ubuntu 14.04虚拟机实现上网方案
- c#自定义简单链表通过IEnumerable接口实现内部迭代
- 如何通过本地化事件正确实现微服务内部强一致性,事件总线跨微服务间最终一致性
- 通过继承IHttpHandle实现JS插件的组织与管理
- Java中子类的基本继承方法,子类通过继承父类public方法,访问父类private成员
- 8 面向对象(制作帮助文档,通过JDK提供的API学习了Math类,代码块,继承(继承子父成员访问特点,super关键字,方法重写))
- Android通过继承Binder类实现多进程通信
- 通过友元函数实现两个不同类中私有成员变量的数据交换