面向对象--继承和重写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象--继承和重写相关的知识,希望对你有一定的参考价值。
1、什么继承?继承有什么优点?
继承是从已有的类中派生出新的类,新的类能吸收已有的的数据属性和行为。
优点:1.代码的重用性。2.父类的属性方法可用于子类3.设计应用程序变得简单4.
子类可以扩展父类的属性和方法。
2、继承使用什么关键字?
extends关键字
3、一个类可以同时继承多个类吗?所有类的父类是什么?
在Java中一个类只能有一个父类,一个类不能同时继承两个父类
所以的类的根类是object
4、什么是重写?用什么方法可以强制检测当前方法是否重写父类方法?
方法的重写发生在父类和子类之间,子类的方法方法名和父类相同,参数列表相同,返回类型相同
当调用方法时,优先调用子类重新的方法,如果子类没有重写父类的方法,那么就从父类中继承方法。
@Object注解可以用于修饰方法,表示强行检测该方法是否重新父类的方法,如果没有重新则报错。
5、构造方法能继承吗?子类继承父类,子类构造方法第一句应该如何书写?
能继承,super(参数);
6、final的用法?String可以继承吗?为什么?
final关键字,可以修饰类方法和变量
修饰类,表示该方法不能被子类继承
修饰变量表示该变量不能被改变
修饰方法表示该方法不能被改变
引用类型的变量如果声明了final表示该变量不能指向别的对象,但是该变量所指向的对象的属性可以改变。
string 不能被继承,string有final修饰符,而final修饰的类不能被继承,实现细节不能被改变。
7、下列方法中哪些重写了父类方法?
class A{
public int test(String s){
System.out.println("aaa");
}
}
class B extends A{
public int test(String rrr){}//a是
public void test(String rrr){}//b类型不同
public int test(int rrr){}//c参数不同
public int test(){}//d参数不同
}
8、说出代码执行结果。6 8
public class Test{
public int x = 8;
public void move(int x){
System.out.println(x);
System.out.println(this.x);
}
public static void main(String[] args){
Test t = new Test();
t.move(6);
}
}
9、说出代码执行结果
public class X{
public X(){
System.out.println("XXX");
}
}
class Y extends X{
public Y(){
System.out.println("yyy");
}
public static void main(String[] aa){//输出xxxyyy
Y y = new Y();
}
}
10、说出代码执行结果
public class X{
public int x;
public int y;
public X(int x){
this.y = x;//将y的值赋值为10
}
}
class Child extends X{//找不到主方法
public Child(int x){
super(x); //x=10
}
}
class Test{
public static void main(String[] aa){
Child c = new Child(10);
System.out.println(c.x);//输出0
}
}
以上是关于面向对象--继承和重写的主要内容,如果未能解决你的问题,请参考以下文章