分享

面向对象-接口的成员特点

 樱花梦_张艺馨 2016-09-06
/*
接口的成员特点:
    A:成员变量:
          只能是常量,并且是静态的。
          默认修饰符:public static final   建议自己手动给出。
    B:构造方法:接口没有构造方法
    C:成员方法:只能是抽象方法。
                  默认修饰符:public abstract 建议自己手动给出
 
所以的类都默认继承自一个类 Object
类 Object是类层次结构的根类,每个类都使用Object作为超类。
*/
====================成员变量 测试练习============================
 interface Person{
    public int num =10;
    public final int num2 =20;
}
class Student implements Person{
}
class Test{
 public static void main(String [] args){
  Person p =new Student();
  System.out.println(p.num);
  System.out.println(p.num2);
 }
}
结果:
10
20
==========================成员变量 测试练习============================
 interface Person{
    public int num =10;
    public final int num2 =20;
}
class Student implements Person{
}
class Test{
 public static void main(String [] args){
  Person p =new Student();
  System.out.println(p.num);
  System.out.println(p.num2);
  p.num = 100;
  p.num2 = 200;
  System.out.println(p.num);
  System.out.println(p.num2);
 }
}
结果:
编译报错:
Test.java:13: 无法为最终变量 num 指定值
                p.num = 100;
                 ^
Test.java:14: 无法为最终变量 num2 指定值
                p.num2 = 200;
=================================成员变量 练习测试=======================
 interface Person{
    public int num =10;
    public final int num2 =20;
}
class Student implements Person{
}
class Test{
 public static void main(String [] args){
  System.out.println(Person.num);
  System.out.println(Person.num2);
 }
}
结果:
10
20
===========================构造方法 测试练习=============================
 interface Person{
public Person(){}// 需要 <标识符>
}
class Student implements Person{
}
class Test{
 public static void main(String [] args){
  
 }
}
结果:
编译报错:
Test.java:4: 需要 <标识符>
public Person(){}
==========================构造方法 测试练习二===========================
 interface Person{
}
class Student implements Person{  //等价于class Student extends Objiect implents Person
 public Student(){
  super();
 }
}
class Test{
 public static void main(String [] args){
  
 }
}
结果:
编译正确
子类的构造方法调用super,实际上调的是Object基类的。
===================== 成员方法 测试练习============================
 interface Person{
  public void show(){}
}
class Test{
 public static void main(String [] args){
  
 }
}
结果:
编译报错:
Test.java:2: 接口方法不能带有主体
         public void show(){}
==========================成员方法 默认public权限测试=======================
 interface Person{
abstract void show();
}
class Student implements Person{
    void show(){}
}
class Test{
 public static void main(String [] args){
  
 }
}
结果:
编译报错:
Test.java:6: Student 中的 show() 无法实现 Person 中的 show();正在尝试指定更低的
访问权限;为 public
         void show(){}
=============================成员方法 默认abstract测试===================
 interface Person{
public void show();
}
class Student implements Person{
public  void show(){}
}
class Test{
 public static void main(String [] args){
  
 }
}
结果:
编译正常:
说明成员方法是抽象的,因为没有方法体。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多