帮我看下这段程序为什么编译不了

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:29:02
public class test
{
public static void main(String[] args)
{
B b=new B();
C.t(b);
}
}
class A
(
public void t1()
{
System.out.println("this is class A t1");
}
)
class B extends A
{
public void t1()
{
System.out.println("this is class B t1");
}
public void t2()
{
System.out.println("this is class B t2");
}
}
class C
{
pbulic static void t(A a)
{
a.t1();
}
}
pbulic static void t(A a)该句中t(A a)什么意思呢
static又是什么意思

pbulic static void t(A a)该句中t(A a)什么意思呢
A就是指前面那个类A,a就是A的一个实例
static是静态的意思,被static修饰的类或方法可以不经过实例化直接调用,调用方法:类名.方法/属性

B b=new B();
C.t(b);
你把类B实例化以后,将实例化的对象b传递给类C中的那个t函数,而C类中那个t函数接受的对象类型是A类类型的,当然不行了!

t(A a)
方法名t A参数a的类型

static静态方法的设置,代表是属于类的方法

pbulic static void t(A a)该句中t(A a)什么意思呢

是A的实例对象
传对象

static又是什么意思
静态的
静态的不能访问非静态的

"pbulic static void t(A a)该句中t(A a)什么意思呢 "
你之所以不能通过编译,问题就是出在这里,应该改成:
public static void t(A a)//你的第一个单词public写错了,所以编译不了。
"t(A a)"的意思就是"t"这个方法要求传一个A对象的参数进去。

"static又是什么意思"
标有static静态的方法,是属于类的方法,也就是直接用类名可以访问的方法。
比如你前面调用的 C.t(b);