第十二单元 面向对象-和抽象类和对象

这篇博客详细介绍了接口在Java中的应用,包括接口成员的特性,如公共静态最终变量和公共抽象方法。此外,文章通过填空题、代码阅读题和实践案例展示了面向对象编程中的抽象类、接口、继承和多态的概念。讨论了接口与抽象类的区别,并提供了实际的代码实现,如计算器接口、员工类和宠物类的继承结构。最后,通过测试类验证了代码的正确性和功能实现。
摘要由CSDN通过智能技术生成

填空题(30分钟)

接口中成员的特点

1、成员变量

public static final修饰,不写也会帮我们加上。

2、成员方法

public abstract修饰,不写也会帮我们加上。

3、构造方法

接口中不能有构造方法

 

变量修饰

Interface里面的变量,必须由public static final 共同修饰。

int i=10;写法默认省略来以上三个关键字。

public:接口的意义是提供一种统一的规范,可以被任意class implement,所以变量被public修饰。

static:接口不允许被实例化,所以需要使用static修饰。

final:接口中的变量默认为全局变量,不可变。

 

方法修饰

Interface中的方法,必须由public abstract修饰。默认省略。

1.接口中的成员变量的特点是(public static final修饰,不写也会帮我们加上)。

2.接口中的成员方法的特点是(public abstract修饰,不写也会帮我们加上)。

3.接口中的成员变量可以使用的修饰符是  (public,static,final)。

4.Java创建接口的关键字是  (interface)。

5.可以能用来修饰interface的关键字有(public,static) 。

6.java程序中测试两个变量是否相等有两种方式,一种是利用==运算符,另一种是利用(equals)方法。

7.面向对象中,继承需要使用到的关键字是(extends)。

8接口的组成部分包括(成员变量,成员方法)。

9修饰的属性或方法只可以被本类、本包内的类使用,应选择的修饰符是(private)。

10面向对象中,继承需要使用到的关键字是(extends)。

11使用(super)作为调用者来调用父类被覆盖的实例方法。

12java中,byte数据类型的取值范围是:(-128)至127。

13子类继承父类后,通过this关键字可以调用继承过来的元素包括(父类中非private修饰的成员变量,成员方法)。

14类继承了父类后,子类拥有父类的哪些成员?(非private修饰的成员变量,成员方法)。

15修饰的属性或方法只可以被本类、本包内的类使用,应选择的修饰符是  (private)。

16在一个类中,方法中(方法名)相同才能称为重载。

17接口中的成员方法可以使用哪些修饰符?(public,,abstract)。

18接口和抽象类的区别是(1.抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高2.抽象类可以有具体的方法 和属性,  接口只能有抽象方法和不可变常量3.抽象类主要用来抽象类别,接口主要用来抽象功能.4、抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的)。

接口和抽象类的区别:

1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2、抽象类要被子类继承,接口要被类实现。

3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果

7、抽象类里可以没有抽象方法

8、如果一个类里有抽象方法,那么这个类只能是抽象类

9、抽象方法要被实现,所以不能是静态的,也不能是私有的。

10、接口可继承接口,并可多继承接口,但类只能单根继承。

 

19数据类型double型占存储空间多少字节(8个字节)。

20java中的标识符只能出现字母,(数字)和下划线以及$

21不论循环条件判断的结果是什么,(do..while)循环将至少执行一次。

22数组是一种()数据类型:整型包括byte(short )int(long)。

23C语言是一种面向过程的编程语言,Java是一种(面向对象)的编程语言。

24构造方法又叫(构造器)、 每一个类里至少有(一个)构造方法。

25修饰的属性或方法只可以被本类、本包内的类使用,应选择的修饰符是(private)。

26面向对象中,静态需要使用到的关键字是(static )

27实例化对象的关键字是(   new    )

28声明继承的关键字是(  extends   )

29包的命名规范是包名全部_小写__(大写/小写),和作用是( windows系统大小写不敏感,但linux操作系统大小写敏感,为了适应不同操作系统,所以统一命名规范 )

30 private访问修饰符能在( 本类中 )访问

31能在本包中调用的访问修饰符包括( public ) ( protected  ) ( default  )

32抽象方法要放在(抽象 )类中

33. 最终修饰符是( final )

二、代码阅读题

1.阅读以下代码,输出结果为(100000)。

public static void main(String[] args) {

    Father f = Son.out();

System.out.println(f.money);//多态中,属性是编译运行都看左边

 }

------------------------------

class Father {

protected int money = 100000;

protected static Father out() {

return new Father();

    }

}

class Son extends Father {

protected int money = 100;

public static Son out() {

return new Son();

      }

};

 

2.以下程序代码的输出结果为(100)。

public static void main(String[] args) {

  out(new Son());//多态中,方法是编译看左边,运行看右边 }

 private static void out(Father father){

  father.out();

 }

-------------------

class Father{

 protected int money = 100000;

 public void out(){

  System.out.println(money);

 }

}

class Son extends Father{

 protected int money = 100;

 public void out(){

  System.out.println(money);

 }

};

 

3.阅读下面代码

public static void main(String[] args) {
    String a="5";String b="5";;
    System.out.println(a.equals(b));
}

运行结果为( true)。

 

4.  指以下代码的运行结果是(编译报错,类型不同,无法比较)。

public class SubClass {

public static void main(String[] args) {

int a=123;String b=“123”;

System.out.println(a==b);

};

};

5.  阅读下面代码,分析代码,输出的结果是:(1)。

public static void main(String[] args) {

  Father f = new Father();

  Son s = new Son();

  if (f.out().equals(s.out())) {

   System.out.println(1);

  } else {

   System.out.println(2);

  }

 }

--------------------

class Father {

 protected int money = 100000;

 protected String out() {

  return money + "";

 }

}

 

class Son extends Father {

 protected int money = 100;

 public String out() {

  return super.out();

 }

}

判断题

1.在Java中一个类可只能有一个父类,但是可以实现多个接口

2接口定义中的变量都必须写明 final 和 static  ×,不写也会自动加

3

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值