java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗class A{int weight;int depth;// A() 为什么加了这段编译就成功,否则就失败呢?// {// weight=depth=-1;// }A(int w,in
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/26 03:09:37
![java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗class A{int weight;int depth;// A() 为什么加了这段编译就成功,否则就失败呢?// {// weight=depth=-1;// }A(int w,in](/uploads/image/z/10401848-8-8.jpg?t=java%E4%B8%AD%E7%9A%84%E5%AD%90%E7%B1%BB%E7%BB%A7%E6%89%BF%E7%88%B6%E7%B1%BB%E7%9A%84%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E5%8F%AF%E4%BB%A5%E4%B8%8D%E7%94%A8super%E5%90%97%2C%E8%BF%98%E6%9C%89%E5%B0%B1%E6%98%AF%E5%AD%90%E7%B1%BB%E8%A6%81%E5%85%A8%E9%83%A8%E7%BB%A7%E6%89%BF%E7%88%B6%E7%B1%BB%E7%9A%84%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E5%90%97class+A%7Bint+weight%3Bint+depth%3B%2F%2F+A%28%29+%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8A%A0%E4%BA%86%E8%BF%99%E6%AE%B5%E7%BC%96%E8%AF%91%E5%B0%B1%E6%88%90%E5%8A%9F%2C%E5%90%A6%E5%88%99%E5%B0%B1%E5%A4%B1%E8%B4%A5%E5%91%A2%3F%2F%2F+%7B%2F%2F+weight%3Ddepth%3D-1%3B%2F%2F+%7DA%28int+w%2Cin)
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就是终结类了,不可被继承.
另外,虚机团上产品团购,超级便宜