第七讲继承与接口动手实验和动手动脑

【动手实验一】

继承条件下的构造方法调用

  • 运行 TestInherits.java示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大!

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

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();

}

}

实验结果截图:

 

【动手动脑一】

“方法覆盖(override)”的要点

  • 方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!
  • 请自行编写代码测试以下特性(动手动脑):
    • 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

1、实验代码:TestInherit.java

//自行编写代码测试以下特性(动手动脑):在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

//ZhaoXuan Li,November 10th,2016.

class Father

{

public void multiplication(double a,double b)

{

System.out.println("父类的函数:"+a+"*"+b+"="+a*b);

}

}

class Me extends Father

{

public void multiplication(double a,double b)

{

super.multiplication(a+1, b+2);

System.out.println("父类的函数:"+a+"*"+b+"="+a*b);

}

}

public class TestInherit

{

public static void main(String[] args)

{

Me a=new Me();

a.multiplication(1,1.2);

}

}

结果截图:

时间: 2024-10-18 06:47:57

第七讲继承与接口动手实验和动手动脑的相关文章

第七讲 继承与多态

1. 源码: class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandparent { publ

动手动脑之继承与接口

?动手实验一:继承条件下的构造方法调用 运行 TestInherits.java 示例 package demo; class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + s

第七节 继承、抽象类和接口

继承的概述 代码示例: class Person{ // 父类 String name; int age; char sex; String idcard; } class Students extends Person{ //子类 继承 父类的属性 public void study(){ System.out.println("好好学习"); } } class Worker extends Person{ //子类 继承 父类的属性 /* 我们通过继承的方式,可以省略掉Worke

java基础知识总结--继承和接口

什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可.多个类称为子类,单独的那个类称之为父类,超类.或者是称为基类. 什么是接口? 接口在Java编程语言中是一个抽象类型,是抽象方法的集合,接口并不是类,编写接口的方法和类很相似,但是他们属于不同的概念,类描述对

继承与接口课堂作业

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

嵌入式linux C++语言(七)——继承与派生

嵌入式linux C++语言(七)--继承与派生 一.继承 在C++编程中软件可重用性(software reusability)是通过继承(inheritance)机制来实现的.类的继承,是新的类从已有类那里得到已有的特性.或从已有类产生新类的过程就是类的派生.原有的类称为基类或父类,产生的新类称为派生类或子类. 派生类的声明:class 派生类名:[继承方式] 基类名{派生类成员声明:};    一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承. 继承方式规

第七讲 stack

1. 栈(stack)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶元素).取得栈顶元素等操作.在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了.因此实现非常的方便.下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个常用操作函数(top().push().pop(). size().empty() ) 2. s

继承与接口的课后作业

1.动手实验:继承条件下的构造方法调用 源代码: class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:"+string);} } class Parent extends Gra

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

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