关于接口,继承,内部类的一些测试

1.一个接口,可含静态函数的定义和静态嵌套类的定义

public interface ClassInInterface
{
 void howdy();
 static class Test implements ClassInInterface   //静态嵌套类
 {
  public void howdy()
  {
   System.out.println("Howdy!");
  }
 }
 static int pp()          //静态函数
 {
  return 5;
 }
 
 public static void main(String[] args)
 {
  new Test().howdy();
 }
}

结果:Howdy!


2.若匿名内部类定义时生成的是接口实例,则匿名内部类内一定要实现全部接口声明的函数

public class Goods3
{
 public A cont()
 {
  return new A()   //匿名内部类
    {
           public void f(){}
           public void p(){}
    };
 }
 public static void main(String[] args)
 {
  Goods3 g=new Goods3();
  A a=g.cont();
 }
}

interface A
{
 void f();
 void p();
}


3.若父类与接口声明的方法完全相同,则考虑用子类中的内部类来实现接口,这样不会冲突

public class Try                   //外部类
{
 public class B implements A    //内部类
 {
  public void f()            //内部类的f()
  {
   System.out.println("B and A");
  }
 }
 
 public void f()                //外部类的f()
 {
  System.out.println("Try");
 }
 
 public static void main(String[] args)
 {
  Try t=new Try();
  Try.B b=t.new B();
  t.f();
  b.f();
 }
}

interface A
{
 int i=5;
 void f();
}

结果:Try
      B and A


4.内部类可以继承其外部类

public class OutExtendsIn
{
 public static void main(String[] args)
 {
  Outer outer=new Outer();
  outer.f();
  Outer.Inner inner=outer.new Inner();
  inner.f();
 }
}

class Outer{                             //外部类
 int i=5;
 void f(){                           
  System.out.println("Outer");
 }
 class Inner extends Outer{           //内部类
  void f(){
   System.out.println("Inner"); //内部类重写方法f()
  }
 }
}

结果:Outer
      Inner


5.接口可继承接口(注:用的关键字是extends,不是implements),
  抽象类可实现接口

public interface InterfaceA{
 int i=5;
 void f();
}

interface InterfaceB extends InterfaceA{
 void g();
}

abstract class ClassC implements InterfaceB{
//f()没有实现是允许的,因为这是抽象类
 public void g(){}
 abstract void p();
}


6.类成员的系统默认初始化比构造函数初始化早

public class Ha
{
 public static void main(String[] args)
 {
  S s=new S();
 }
}

class S
{
 
 S()
 {
  System.out.println("S");
 }
 {
  System.out.println("i");
  int i=10;
 }
}

结果:i
      s


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值