class A
{
String s = "class A's attribute";
}
class B extends A
{
String s = "class B's attribute";
void method()
{
System.out.println("method in B");
}
public static void main(String []args)
{
A a = new B();
System.out.println(a.s);
a.method();//a是A的实例,而A中并没有这个方法,因此a.method是错的。除非在A中声明此方法,可以用接口或者抽象函数方式,但是对于A应该做相应的修改。
}
}
{
String s = "class A's attribute";
}
class B extends A
{
String s = "class B's attribute";
void method()
{
System.out.println("method in B");
}
public static void main(String []args)
{
A a = new B();
System.out.println(a.s);
a.method();//a是A的实例,而A中并没有这个方法,因此a.method是错的。除非在A中声明此方法,可以用接口或者抽象函数方式,但是对于A应该做相应的修改。
}
}
abstract class A
{
String s = "class A's attribute";
abstract void method();
}
或者:
interface A
{
String s = "class A's attribute";
void method();
}
或者:
class A
{
String s = "class A's attribute";
void method(){};//注意这个{}
}
它的实质还是一个父类,里面方法都没有,所以会出错,你试试楼上的
代码
class B implements A //注意这里!
{
String s = "class B's attribute";
void method() //这里实现接口
{
System.out.println("method in B");
}
public static void main(String []args)
{
A a = new B();
System.out.println(a.s);
a.method();
}
}
另外如果有问题,可能会出在访问权上,即是否要添加public修饰符,自己试着改改就行了。