码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象--继承和重写

时间:2017-05-01 22:12:37      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:属性   代码   调用   表示   强制   构造   是什么   aaa   应用   

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
}
}

面向对象--继承和重写

标签:属性   代码   调用   表示   强制   构造   是什么   aaa   应用   

原文地址:http://www.cnblogs.com/YGZ-321/p/6792791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!