java带参数的构造方法_Java习题精选视频答疑(第5章)

b32db85abe469951f95d9e5dd8add77d.png

习题精选视频答疑(第5章)

耿祥义

   摘要 《Java实用教程第5版-微课版》ISBN:978-7-302-46425-9中的大部分习题包含于配套题库T2版中。根据教学中发现的学生的疑惑和常见问题,本公众号精选部分题目,陆续用视频的方式给予讲解,以便使更多学习Java的同学获益。 解答一
  • 题目涉及到的知识点:

(1)  如果类显式地定义了构造方法,编译器将 不提供 默认的无参数的构造方法 (2)  子类不继承父类的构造方法 (3)  子类构造方法的第一条语句一定是使用super关键字调用父类的构造方法。 (4)  如果子类没有显式地使用super,那么默认地有super(),即调用父类的无参数构造方法(如果父类没有无参数构造方法,编译器提示错误)。
  • 题目 :对于下列代码,下列哪个叙述是正确的?答案D

A. 有编译错误。 B. 运行输出结果是10。 C. 运行输出结果是100。 D. 运行输出结果是110。

E.java

class Animal{     int m;     Animal(){        m = 100;      }     Animal(int m) {        this.m = m;      }  } class Dog extends Animal {     Dog() {        m += 10;     } } public class E {    public static void main(String args[]){       Dog dog = new Dog();       System.out.println(dog.m);    } }
  • 视频讲解

5c4573384ddcb5410e661c6dae7537d8.png

解答二
  • 题目涉及到的知识点:

(1) 上转型对象调用子类重写的实例方法等价子类对象调用该实例方法。 (2) 上转型对象访问(使用点.运算符)的变量可以是子类继承的或隐藏的,不能是子类显式声明的变量。  (3)  子类继承的方法中的成员变量一定是子类继承的或隐藏的(甚至是子类未继承的),不会是子类显式声明的。
  • 题目 :给出【代码1】【代码2】

【代码3】的结果

E2.java class A {    int m;    int getM() {       return m;    }    int seeM() {        return m;    } } class B extends A {      int m ;       int getM() {         return m+100;      } } public class E2 { public static void main(String args[]) {      B b = new B();      b.m = 20;      System.out.println(b.getM());  //【代码1】答案:120      A a = b;      // 上转型对象访问的是被隐藏的m :      a.m = -100;           上转型对象调用的一定是子类重写的getM()方法:      System.out.println(a.getM());  //【代码2】答案:120    子类继承的seeM()方法操作的m是被子类隐藏的m:      System.out.println(b.seeM()); //【代码3】答案:-100   }

}

  • 视频讲解

417622ec378d9b7b5f624ede5f87a1d4.png

扫码优惠购书 推荐阅读
  • Java面向对象教学大纲

  • java2实用教程第5版配套练习题库(version T2,发布2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值