本文目录一览:
- 1、Java中类A继承类B,B类中有个protected的方法methodC,请问子类可以直接用this.关键字调用方法methodC吗?
- 2、java中A继承B,B继承C,那么C是A的父类吗?C是A的超类吗?
- 3、java中定义一个类可以同时继承两个类
Java中类A继承类B,B类中有个protected的方法methodC,请问子类可以直接用this.关键字调用方法methodC吗?
如你所说A extends B
我帮你把代码模拟粗来
public class B
{
protected void methodC()
{
// TODO you codes here...
}
}
public class A extends B
{
}
这个分两种情况
子类A中没有Override父类方法,可以使用this:
public class A extends B
{
void yourmethod()
{
this.methodC();
//直接 methodC() 也可以
}
}
2. 子类中Override了父类方法,一定要使用super:
否则调用的将是本类中的方法而非父类
public class A extends B
{
public void yourmethod()
{
super.methodC(); //调用父类
}
@Override //覆盖时标签表上Override,这是个好的编程习惯
public void methodC()
{
// TODO your codes here...
// super.methodC() 这可以调用上一级的methodC()方法,而不是本methodC
// 如果不是使用super,而且本来没有这样的意愿
// 那么就会陷入一个伪死循环,并会在很多情况下抛出StackOverFlow
}
}
期望对你有用!
java中A继承B,B继承C,那么C是A的父类吗?C是A的超类吗?
可以说C是A的间接父类,B才是A的直接父类,java是单继承的, 一个类有且只能有一个直接父类,但是并不限制继承的层数,也就是间接父类可以有n多个
java中定义一个类可以同时继承两个类
java中一个类不能直接继承两个类。
比如说这样:class A extends B,C
不能这样写,因为java不支持多继承,但是可以像下面这样实现继承多个类:
class A extends B
class C extends A
这样C就同时继承了B和A两个类。
扩展资料
当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:
1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。