java的一些问题!急!帮助!十分感谢。

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:27:14
下面是java的一些问题,请高手指教!谢谢您。
1。多态的问题。多态的概念是:“不同类型的对象可以相应相同的消息”。不是很理解。我的理解:(一个父类派生出的多个子类的对象通过塑型可以响应同一个方法,执行结果不同,因为不同对象的方法体不同)。疑问>(不同对象是否派生于同一个父类?)
2。抽象类中可以有非抽象方法吗?
3。一个类的对象拥有了类中的全部变量和方法,而一个类的子类不也是拥有了父类中的全部变量和方法吗?有什么不同呢?在类的对象中可以增加对象自己的变量和方法吗?
3。构造方法不可已被继承,只能被调用。那为什么书上说“抽象类中的构造方法其子类可能需要继承”?
4。java中大部分是动态绑定,什么时候用静态绑定?
5。为什么在声明一个终结类的时候不用public呢?书上的语法是final class ...(访问范围是???)而在声明一个抽象类时,确要加上一个public呢?书上的语法是public abstract ...

----
谢谢大家了!
首先感谢color4you、roddickmeng、bdlb0116的热心及时的解答。可是我还是有点疑惑。
--------------
*第三问:比如声明了一个类Circle,现在用Circle a=new Circle()创建了它的对象。可以在对象a中增加它自己的变量和方法吗?
*构造方法是被其子类调用的,这个我明白。我不懂书上为什么说“抽象类中的构造方法其子类可能需要继承”?(“继承”?????)
*第五问:java基础类库中的java.lang.String、java.lang.Math等类都被默认声明成final型,他们前面都没有加pluclic吗?

--------------
很想结识你们。我的qq:605489969

1.是同一父类
2.可以又抽象方法
3.不一定,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就是终结类了,不可被继承。

首先声明以下答案纯属个人理解,再加上本人表达能力有限,所以答案仅供参考。
1.是同一个类,多个类可以继承同一