fla*_*lav 2 java initialization object
class superClass {}
class subClass extends superClass{}
public class test
{
public static void main()
{
superClass sc1 = new subClass();
subClass sc2 = new subClass();
//whats the difference between the two objects created using the above code?
}
}
Run Code Online (Sandbox Code Playgroud)
简单说明:使用时
SuperClass obj = new SubClass();
Run Code Online (Sandbox Code Playgroud)
只能SuperClass访问定义的公共方法.定义的方法SubClass不是.
当你使用
SubClass obj = new SubClass();
Run Code Online (Sandbox Code Playgroud)
定义的公共方法SubClass也可以与SuperClass公共方法一起访问.
在两种情况下创建的对象都是相同的.
例如:
public class SuperClass {
public void method1(){
}
}
public class SubClass extends SuperClass {
public void method2()
{
}
}
SubClass sub = new SubClass();
sub.method1(); //Valid through inheritance from SuperClass
sub.method2(); // Valid
SuperClass superClass = new SubClass();
superClass.method1();
superClass.method2(); // Compilation Error since Reference is of SuperClass so only SuperClass methods are accessible.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6020 次 |
| 最近记录: |