您的位置:

java继承中遇到问题(java中所有的异常继承于哪个类)

本文目录一览:

JAVA中的继承问题

B继承了A类,并且又定义了一个变量i,这个变量i隐藏了父类A类的变量i,此时B类的每一个对象b中都有两个属性i:A.i=123以及B.i=456。对于一个B类引用b,使用b.i访问时,访问的是B.i属性,也就是456。

而方法g(A a)的形参是A类引用,将一个B类对象传递到方法g中,在方法g中只能访问这个B类对象的A类部分,因此此时a.i代表的是这个B类对象中的A.i属性,也就是123。

关于JAVA,继承问题。

和C++类似,可以继承基类的公共属性和方法。

在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承。受保护的也可以继承

但是私有的类属性成员和方法则无法继承。

.子类继承父类的成员变量

当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:

1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;

2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。

2.子类继承父类的方法

同样地,子类也并不是完全继承父类的所有方法。

1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;

2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。

java继承问题

方法可以覆盖。。。。。但是变量是不能覆盖的。。。。

所以test里面有两个value, 一个是从父类parent继承来的value(值为124),可以用super.value来获取,另一个是自己的value(值是456)

所以这个方法是父类的方法,返回的也是父类value的值。

如果在子类test里面覆盖这个方法。。。结果就是456了。。

代码如下:

class parent

{

protected String value = "123";

public String getValue()

{

return value;

}

}

public class test extends parent

{

protected String value = "456";

public String getValue(){

return value;

}

public static void main(String[] args)

{

System.out.print((new test()).getValue());

}

}

java中继承问题,求高手解释一下!

有点复杂,就解释一条,其它的你自己思考吧。

System.out.println(a2.show(b)); 结果是“B And A”,为什么不是 “B And B”或“A And A”呢?

已知a2的类型是A,实际对象是B。

那么 a2.show(b) 以根据class A的定义来选择方法,自然是进入show(A)方法。 正好 B 又覆盖了 show(A)方法,所以最终执行的是 B.show(A) 方法。

java继承中出错

你先把12.19那个项目关闭再试一下

项目上右键选择 close project

java中子类继承父类时总是出错怎么回事

如果是多个类放在一个public里就会出错

java-继承-实例

1234567891011121314151617181920212223242526272829303132333435

//建一个A类class A{//成员变量 其中num是实参int num=0;//成员方法,其中 i 是型参public A(int i){//输入int型文件输出下面System.out.println("aaaaaaaaaaaaaaaaaaa");System.out.println("i= "+i);//把输入的i赋值给成员变量numnum=i;}}//B继承Aclass B extends A{int num=0;//成员方法B.public B(){//继承类A的方法.因为B继承了A必然继承了A的特性.所以输入int值10令方法实现.super(10);System.out.println("bbbbbbbbbbbbbbbbbbbb");//这里的num是类B的.System.out.println("num= "+num);//如果想显示类A的num则需要用下列的super.num.这里注意num在类A中需是成员变量才可以.System.out.println("super.num= "+super.num);}}//建立测试类Cpublic class C{//mainpublic static void main(String aa[]){//new 一个对象B()new B();}}