继承和接口课后作业

动手动脑及验证:

一、

TestInherits.java实例运行结果及结论:

代码:class Grandparent

{

public Grandparent()

{

System.out.println("GrandParent Created.");

}

public Grandparent(String string)

{

System.out.println("GrandParent Created.String:" + string);

}

}

class Parent extends Grandparent

{

public Parent()

{

//super("Hello.Grandparent.");

System.out.println("Parent Created");

// super("Hello.Grandparent.");

}

}

class Child extends Parent

{

public Child()

{

System.out.println("Child Created");

}

}

public class TestInherits {

public static void main(String args[])

{

Child c = new Child();

}

}

结果:

结论:通过super调用基类的方法,必须是子类构造方法中的第一个语句。

二、思考题

为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么?

解:因为构造函数是一种特殊的方法,主要用来在创建函数的时候用于初始化对象,即为对象成员变量赋初始值。总与new运算符一起使用在创建对象的语句中,并且,一个类可以有多个构造函数,课根据其参数个数的不同或者参数类型的不同来区分。

构造对象,先调用其构造方法,用来初始化其成员函数和成员变量。子类拥有父类的成员变量和成员方法,则从父类继承而来的成员变量和成员方法得不到正确的初始化。

不能反过来调用,因为父类不知道子类有什么变量而且子类也得不到初始化的父类变量,导致程序出错。

时间: 2025-01-01 08:22:22

继承和接口课后作业的相关文章

继承与接口课后作业

编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”.“及格”.“中”.“良”.“优”的结论. 要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃. 代码: //2015.11.12package ba;import javax.swing.JOptionPane;public class TestGrade { public static void main(String[] args) { // TODO Auto-generat

继承与接口课后总结

继承的语法: class 子类名 extends 父类名 { -- } 父类(parent class) 超类(super class)通常指直接上级 基类(base class)通常指包括直接上级在内的"上级的上级" 继承条件下类的访问权限 public: 外界可自由访问 private: 外界不可访问 protected: 同一包中的子类都可以访问,另一包中的子类(派生于同一个父类)也可以访问 default: 如果不指明任何权限,则默认同一包中的类可以访问 运行 TestInhe

继承与接口课堂作业

(1)动手实验:继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大! 结论:通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句.   Super调用基类构造方法的使用: 1.它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数). 2.调用super()必须写在

继承与多态 - 课后作业

1 . 继承条件下的构造方法调用 class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandpar

12.面向对象(继承/super/接口/抽象类)

面向对象继承与派生继承继承顺序继承原理子类调用父类的方法(super)组合接口接口的概念:接口的概念解释和使用:python中的接口:抽象类 面向对象 继承与派生 继承 什么是继承?继承是一种创建新的类的方式 class A: pass class B(A): pass 在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或者超类,新建的类称为派生类或者子类 python中类的继承分为,单继承和多继承. 查看继承的方法B.__bases__ 如果没有指定基类,python的类会默

课后作业

课后作业 "类型转换"知识点考核-2 程序源代码: 1 class Mammal{} 2 class Dog extends Mammal {} 3 class Cat extends Mammal{} 4   5 public class TestCast 6 { 7      public static void main(String args[]) 8      { 9             Mammal m; 10             Dog d=new Dog();

数组课后作业

课后作业: 随机生成10个数,填充一个数组,然后用消息框显示数组,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:首先使用random随机产生10个数,存储在数组中,然后使用for循环把数字存储在一个String对象中,再使用for循环求出数组中所有数字的和,最后用对话框输出内容. 程序流程图: 源程序代码: import javax.swing.*; public class Test1{ public static void main( String args[] ){ Strin

继承与接口1

下面程序输出什么: #include<iostream> using namespace std; class A { public: void virtual f(){ cout<<"A"<<endl; } }; class B:public A{ public: void virtual f(){ cout<<"B"<<endl; } }; int main() { A* pa=new A();//定义

Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇

Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript时,可以选择面向过程的方式编程,显得高效:但在实际工作中,遇到的项目需求和框架较大的情况下,选择面向对象的方式编程显得尤其重要,Javascript原生语法中没有提供表述面向对象语言特性的关键字和语法(如extends.implement).为了实现这些面向对象的特性,需要额外编写一些代码,如下.