java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗class A{int weight;int depth;// A() 为什么加了这段编译就成功,否则就失败呢?// {// weight=depth=-1;// }A(int w,in
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 21:42:30
java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗class A{int weight;int depth;// A() 为什么加了这段编译就成功,否则就失败呢?// {// weight=depth=-1;// }A(int w,in
java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗
class A
{
int weight;
int depth;
// A() 为什么加了这段编译就成功,否则就失败呢?
// {
// weight=depth=-1;
// }
A(int w,int d)
{
this.weight=w;
this.depth=d;
}
A(int len)
{
weight=depth=len;
}
}
class B extends A
{
int height;
B(int w,int d,int h)
{
super.weight=w;
super.depth=d;
//super(w,d);
height=h;
}
}
public class test2
{
public static void main(String args[])
{
B b=new B(1,2,3);
System.out.println(b.weight+b.height+b.depth);
}
}
java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗class A{int weight;int depth;// A() 为什么加了这段编译就成功,否则就失败呢?// {// weight=depth=-1;// }A(int w,in
定,private修饰的变量和方法不可被子类继承,在子类中可以增加子类的变量和方法
3.(你写重复了)所有子类在产生对象是,都会默认去调用父类的构造方法,你可以测试一下.
4.动态绑定对两个有继承或者实现关系的类而言,下面是具体的细节:
1:编译器检查对象的声明类型和方法名.架设我们调用x.f(args)方法,并且
x已经被声明为C类的对象,那么编译器回列举出C类中所有的名称为f的方法和
从C类的超类的继承过来的f方法
2:接下来编译器检查方法调用中提供的参数类型.如果在所有名称为f 的方法中
有一个参数类型和调用提供的参数类型最为匹配,那么就调用这个方法,这个
过程叫做“重载解析”
3:当程序运行并且使用动态绑定调用方法时,虚拟机必须调用同x所指向的对象
的实际类型相匹配的方法版本.假设实际类型为D(C的子类),如果D类定义了
f(String)那么该方法被调用,否则就在D的超类中搜寻方法f(String),依次
类推
5.我觉得可以用public啊,final class的主要作用就是防止此类被继承,就是不想此类再有任何改变嘛~,抽象类就要加
public public只是修饰符而已,你可以去掉啊~
//.
补充:
可以在对象a中增加它自己的变量和方法吗?
不能!类就是模板,不能动态增加变量和方法!
如果非要增加:那用反射机制,好像可以实现.
但基本不存在此情况
就我所知,构造方法不能被继承.不过可以通过super()来引用
java.lang.String 和java.lang.Math应该是public类型的吧,加final就是终结类了,不可被继承.
另外,虚机团上产品团购,超级便宜