新手问题(四) A a=new A()和B a=new A()是一样的吗(A类是B类的父类)这两种书写方式有什么区别吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果A类是B类的父类,那么这是编译都通不过的只有B类是A类的父类,我们的讨论才有意义A a=new A()的时候,a可以调用定义在A中所有的公共方法B a=new A()的时候,a只可以调用定义在B中的所有公共方法你可以把a转型成A的对象A as=(A)a这个时候,就可以访问定义在A中的所有公共方法了 B a=new A() ??可以这么写吗? 我写的时候报错啊 如果A类是B类的父类,那么这是编译都通不过的只有B类是A类的父类,我们的讨论才有意义============================== 如果A类是B类的父类,那么这是编译都通不过的只有B类是A类的父类,我们的讨论才有意义A a=new A()的时候,a可以调用定义在A中所有的公共方法B a=new A()的时候,a只可以调用定义在B中的所有公共方法你可以把a转型成A的对象A as=(A)a这个时候,就可以访问定义在A中的所有公共方法了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~有疑义!B a=new A()的时候,a只可以调用定义在B中的所有公共方法???没有考虑扩展类方法覆盖超类方法的多态机制(对实例方法而言)!此时a无法调用定义在B中的方法,而只能调用B中同名的静态方法!For instance:public class Father{ static void showStatic() { System.out.println("父类的静态方法"); } void showNonStatic() { System.out.println("父类的实例方法"); }}class Son extends Father{ static void showStatic() { System.out.println("子类的静态方法"); } void showNonStatic() { System.out.println("子类的实例方法"); } }class Test{ public static void main(String[] args) { Father obj=new Son();// 扩展转化,自动的 obj.showStatic(); obj.showNonStatic(); }}执行结果:父类的静态方法 子类的实例方法不知道是否说清楚? public class Father{ public Father(){ System.out.println("父类的构造方法"); } static void showStatic() { System.out.println("父类的静态方法"); } public void showNonStatic() { System.out.println("父类的实例方法"); }}class Son extends Father{ public Son(){ System.out.println("子类的构造方法"); } static void showStatic() { System.out.println("子类的静态方法"); } public void showNonStatic() { System.out.println("子类的实例方法"); } }class Test{ public static void main(String[] args) { Father obj=new Son();// 扩展转化,自动的 obj.showStatic(); obj.showNonStatic(); }}结果是:父类的构造方法子类的构造方法父类的静态方法子类的实例方法说明它是先调用父类的构造方法,再用子类的构造方法 Socket程序中的while循环问题 用时0.00025?java怎么实现这种时间格式的 PrintStream的弊端! 求教关于输入输出的题目? 读取和设置XML文件,用那种技术最好? 各位帮忙看看是哪出错了,马上结贴给分 我的JB8为什么总是报不能使用awt ear文件怎么做?? 如何让一个控件接受组合键的事件响应 各位朋友,想请教一个小问题? 为什么jdk1.5不能在win2000 professional运行? 问个菜的问题!String
只有B类是A类的父类,我们的讨论才有意义A a=new A()的时候,a可以调用定义在A中所有的公共方法B a=new A()
的时候,a只可以调用定义在B中的所有公共方法你可以把a转型成A的对象A as=(A)a
这个时候,就可以访问定义在A中的所有公共方法了
可以这么写吗? 我写的时候报错啊
只有B类是A类的父类,我们的讨论才有意义
==============================
只有B类是A类的父类,我们的讨论才有意义A a=new A()的时候,a可以调用定义在A中所有的公共方法B a=new A()
的时候,a只可以调用定义在B中的所有公共方法你可以把a转型成A的对象A as=(A)a
这个时候,就可以访问定义在A中的所有公共方法了
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~有疑义!
B a=new A()
的时候,a只可以调用定义在B中的所有公共方法???没有考虑扩展类方法覆盖超类方法的多态机制(对实例方法而言)!此时a无法调用定义在B中的方法,而只能调用B中同名的静态方法!
For instance:public class Father{
static void showStatic()
{
System.out.println("父类的静态方法");
}
void showNonStatic()
{
System.out.println("父类的实例方法");
}
}class Son extends Father{
static void showStatic()
{
System.out.println("子类的静态方法");
}
void showNonStatic()
{
System.out.println("子类的实例方法");
}
}class Test{
public static void main(String[] args)
{
Father obj=new Son();// 扩展转化,自动的
obj.showStatic();
obj.showNonStatic(); }
}执行结果:父类的静态方法
子类的实例方法
不知道是否说清楚?
public Father(){
System.out.println("父类的构造方法");
}
static void showStatic()
{
System.out.println("父类的静态方法");
}
public void showNonStatic()
{
System.out.println("父类的实例方法");
}
}class Son extends Father{
public Son(){
System.out.println("子类的构造方法");
}
static void showStatic()
{
System.out.println("子类的静态方法");
}
public void showNonStatic()
{
System.out.println("子类的实例方法");
}
}class Test{
public static void main(String[] args)
{
Father obj=new Son();// 扩展转化,自动的
obj.showStatic();
obj.showNonStatic(); }
}结果是:父类的构造方法
子类的构造方法
父类的静态方法
子类的实例方法说明它是先调用父类的构造方法,再用子类的构造方法