接口与继承的理解和问题思考

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

构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。    所以说构造函数的作用,简单来说就是初始化,初始化一个新建的对象。

2在子类中,要调用父类中被覆盖的方法代码

可以使用super

package Demo;

class Demo {

public static void main(String args[]) {

Child c = new Child();

}

}

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

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

}

}

class Child extends Parent{

public Child(){

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

}

}

源代码截图:

结果截图:

super就是想调用父类的某个方法时,就在子类中方法的最前面写上super(),括号里写要覆盖的内容或方法名。

3加号作用:和Object类相关

下面看这个截图:

结果截图:

前页的示例中,Fruit类覆盖了Object类的toString方法。

结论:在“+”运算中,当任何一个对象与一个String对象,连接时,会隐式地调用其toString()方法,默认情况下,此方法返回“类名 @ + hashCode”。为了返回有意义的信息,子类可以重写toString()方法。

时间: 2024-11-08 22:33:12

接口与继承的理解和问题思考的相关文章

一个接口能否继承另一个接口?一个抽象类能否实现一个接口?

都可以: 一.一个接口能否继承另一个接口? 接口继承接口  本质就是一个抽象类继承另一个抽象类(它们都没写方法的实例).当一个类继承了一个抽象类,它必须要重写父类 抽象类中的抽象方法,如果不去重写父类抽象方法的实例,那么这个类也是抽象类(这个抽象子类,直到重写这个抽象方法的实例为止, 才能摆脱抽象的命运).其实我们想想,一个类去实现一个接口也不就是一个实体子类把一个抽象的所以抽象方法实例化(重写了 抽象父类 中全部抽象方法),当然抽象类和接口还是有区别的.我上上篇就写到了抽象类和接口的区别,有兴

对Javascript 类、原型链、继承的理解

一.序言 ??和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承.(以下不讨论ES6中利用class.extends关键字来实现类和继承:实质上,ES6中的class.extends关键字是利用语法糖实现的) Javascript灵活到甚至可以实现接口的封装(类似Java中的Interface和implements). 二.类的实现 1.我对类的理解 ??首先,

C#接口多继承方法重名问题

最近实现一个功能需要继承两个接口,然而父类接口有这重名的方法,且方法实现一致.两个父接口均被多个子接口继承,并在类实例中实现.起初,我是通过new重名方法来实现我的功能调用.后被指正,在网上看了一个工友解决类似问题的方法,这里引用记录一下. 引自:http://www.cnblogs.com/xgw2004058/archive/2010/06/18/1760046.html 经常,一个类会实现多个接口,比如用户的一个控件继承自"IEdit"和"ICombo",每个

继承的理解---开始

一,概念理解 1. 继承可以理解为即由基类产生派生类的这一过程.如人类(基类),学生(派生类),小学生(更低一级派生类). 2. 继承的派生类将拥有基类和自己的数据和行为. 二,继承规则 1.继承可以传递,object类为所有类的基类. 2.派生类应当是对基类的扩展.派生类无法去除已经继承的成员定义. 3.构造函数和析构函数不能被继承. 4.派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员.但这并不因为这派生类删除了这些成员,只是不能再访问这些成员.我们可以使用new修饰符来

Java的接口Interface和接口实现Implentmens的理解

长期从事CS的开发,从2005年开始买Java的书籍到现在9年了,一直都是门外汉,什么时候可以达到我CS开发中信手拈来,游刃有余的境界,必须得坚持和奋斗,因为除了这个别的我什么也不会. 我多做一点,月月就多点台阶. 首先 Interface也是Java的一种类. Java类不能多继承,但是可以实现多个Interface. 如果有多个不同的对象要实现某个相同的功能,那么可以先把这个功能抽象为一个接口. 如何判断由哪种具体的对象来实现这个接口功能呢,可以写一个判断类,由这个判断类读取配置文件的标识信

关于类、抽象类和接口的继承关系

关于类.抽象类和接口的继承关系 一.类和抽象类 当实体类Impl继承一个抽象类Abstract,该实体类Impl可以不用实现抽象类Abstract中的所有方法,但是必须实现抽象类中的所有抽象方法. 二.类和接口 当实体类Impl直接实现接口Interface,那么该实体类Impl必须是想接口Interface里面的所有接口方法. 三.抽象类和接口 当抽象类Abstract实现接口Interface,抽象类可以实现接口中的部分接口方法,也可以完全不实现任何接口方法. 理解:因为抽象类的功能类似接口

接口多继承自接口和接口是否可以继承自一般类的疑问?

接口是常量值和方法定义的集合.接口是一种特殊的抽象类. Java类是单继承的.classB Extends classA java接口可以多继承.Interface3 Extends Interface0, Interface1, interface-- 不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方法,A如何决定该继承那一个呢? 但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口. 注意: 1)一个类如果实现了一个接口,则要实现该接口

接口、接口优点、接口的属性和方法特性、接口与继承的区别、接口与抽象类的区别、匿名实现类、JDK1.8新特性、打印类名称

接口里的属性,必须是公共的/默认的&静态的&Final&初始化后的属性: 接口里所有方法都是抽象的. 接口和继承---先天有的用继承,后天学习的用接口: 接口特性-------- 1.接口不可以被实例化: 2.实现类必须实现接口中所有方法,否则实现类必须是抽象类 3.实现类可以实现多个接口,来弥补Java不能多继承: 4.接口中的变量都是静态常量:(静态的-可以通过类的名字点-直接调用:) ----------------------------------------------

Java Serializable接口(序列化)理解及自定义序列化

  1 Serializable接口 (1)简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存在数据库,内存,文件等),然后可以在适当的时候再将其状态恢复(也就是反序列化).serialization 不但可以在本机做,而且可以经由网络操作.它自动屏蔽了操作系统的差异,字节顺序等.比如,在 Windows 平台生成一个对象并序列化之,然后通过网络传到一台 Unix 机器上,然后可以在这台Unix机器上正确地重构(deserialization)这个对象. 不必