依旧是根据作业问题,自己整理的面向对象第二个特性——继承
1:继承是什么?继承的好处是什么? 答:继承是指,当两个类的关系可以表述为:A is a B 时,可以做出定义:class Aextends B,即A继承B,这样定义之后,类B中的所有非静态属性和功能(成员变量和成员方法)在类A中都可以直接访问。即:把多各类的相同内容进行抽取,封装到一个类中(父类),再定义其他子类时,不需重复继承父类即可。 好处是:提高代码的复用性,且为多态提供前提。
2:Java中的继承特点是什么? 答:java中继承的特点是: a只能单继承,不能多继承 b支持多层(多重)继承 4:this和super分别是什么,他们各自的应用场景是什么? 答:this是指:当前运行类的对象的引用。 super是指:父类在内存空间的标识 5:什么是方法重写?需要注意哪些问题? 答:重写是在继承基础上的一种情况。子类会继承父类所有非静态成员变量和成员方法,但有时子类需要有自己的不同于父类的成员方法,或在继承来的成员方法基础上做一些修改,此时可构造一个和父类声明完全相同的方法(函数名,返回值类型,参数均相同),在运行时会运行此方法,而非父类的方法。若既想继承父类方法功能,又想有自己特有的功能,只需在方法中用super.方法名()来调用父类功能,而再添加自己的功能。 需要注意:1,父类私有的成员方法不能继承,2,不能缩小父类方法的访问权限,3,静态方法只能被静态方法重写。 6:方法重写和重载有什么区别? 答:重载(overload)发生在同一个类中,指多个方法的函数名相同而参数列表不同(和返回值类型无关)时,会当做多个方法使用,而不会冲突。 重写(override)发生在子类和父类之间,指方法的声明完全相同时(函数名,返回值类型,参数完全相同),子类的方法会覆盖父类的方法。 7:子父类中构造方法的执行有什么特点?为什么要这样? 答:子类加载时会首先默认加载父类的无参构造方法,再执行自己的构造方法。(也就是说,子类的构造方法中的第一行默认有一句:super();用来加载父类的无参构造)。因为子类的对象在创建时,必须调用父类的构造方法去初始化父类的成员,这样子类才能继承。
|