刚刚学到JAVA继承,照着教程的例子,自己也写了两个,结果两个都运行不了,把教程上的例子运行一下,居然也运行不起来还望各位高手指点指点
具体如下:
第一个:ASD.java
class Test
{ int age;
String name;
Test(int a,String n)
{
age=a;
name=n;
}
}
class Test2 extends Test
{
String home="China";
}
public class ASD
{
public static void main(String args[])
{
Test t1 = new Test(20,"ABC");
Test2 t2 = new Test2(40,"DEF");
System.out.print("age="+t1.age+"\nname="+t1.name+"\nhome=");
System.out.print("age="+t2.age+"\nname="+t2.name+"\nhome="+t2.home);
}
}
-----------------------------------------------------------------------
第二个:QWE.java
class Text
{ int age;
String name;
Test(int a,String n)
{
age=a;
name=n;
}
}
public class QWE extends Text
{
public static void main(String args[])
{
Text t1 = new Text(20,"ABC");
QWE q1 = new QWE(40,"DEF");
String home="China";
System.out.print("age="+t1.age+"\nname="+t1.name+"\nhome=");
System.out.print("age="+q1.age+"\nname="+q1.name+"\nhome="+t2.home);
}
}
-------------------------------------------------------------------
教程上的例子:Person3.java
public class Person3
{
protected String name; //保护成员
protected int age;
void setdata(String n1,int a1)
{
name = n1;
age = a1;
}
public void print()
{
System.out.println(name+", "+age);
}
}
class Student3 extends Person3
{
protected String dept;
public static void main(String args[])
{
Person3 p1 = new Person3();
p1.setdata("李大广",21) ;
p1.print();
Student3 s1 = new Student3() ;
s1.setdata("陈小瑞",19); //调用超类的成员方法
s1.dept="计算机系"; //访问本类的成员变量
s1.print();
}
}
具体如下:
第一个:ASD.java
class Test
{ int age;
String name;
Test(int a,String n)
{
age=a;
name=n;
}
}
class Test2 extends Test
{
String home="China";
}
public class ASD
{
public static void main(String args[])
{
Test t1 = new Test(20,"ABC");
Test2 t2 = new Test2(40,"DEF");
System.out.print("age="+t1.age+"\nname="+t1.name+"\nhome=");
System.out.print("age="+t2.age+"\nname="+t2.name+"\nhome="+t2.home);
}
}
-----------------------------------------------------------------------
第二个:QWE.java
class Text
{ int age;
String name;
Test(int a,String n)
{
age=a;
name=n;
}
}
public class QWE extends Text
{
public static void main(String args[])
{
Text t1 = new Text(20,"ABC");
QWE q1 = new QWE(40,"DEF");
String home="China";
System.out.print("age="+t1.age+"\nname="+t1.name+"\nhome=");
System.out.print("age="+q1.age+"\nname="+q1.name+"\nhome="+t2.home);
}
}
-------------------------------------------------------------------
教程上的例子:Person3.java
public class Person3
{
protected String name; //保护成员
protected int age;
void setdata(String n1,int a1)
{
name = n1;
age = a1;
}
public void print()
{
System.out.println(name+", "+age);
}
}
class Student3 extends Person3
{
protected String dept;
public static void main(String args[])
{
Person3 p1 = new Person3();
p1.setdata("李大广",21) ;
p1.print();
Student3 s1 = new Student3() ;
s1.setdata("陈小瑞",19); //调用超类的成员方法
s1.dept="计算机系"; //访问本类的成员变量
s1.print();
}
}
解决方案 »
- 关于Java tcp的问题
- 数据库操作代码异常,请高手帮忙找问题所在。
- 请问如何把一个指定string型的日期参数传入timetask(task,time)的time中?
- Applet小程序嵌入到HTML中为什么不能正常显示布局?
- 在于一个applet发布的问题,急,在线等!~~~~~~~~~~~~
- JAVA能写个程序一般的window程序在任务栏挂一个图标么?
- 如何將CHAR轉換為ACS,如何將ACS轉化為CHAR
- 有关包的问题
- 各位高手请帮忙!我想问:取了数据库记录的文件的路径,可不可以读远程的那个文件?IP+路径+文件名吗?要设权限吗?ftp传行吗?怎么传???
- 请高手指点怎样用Java语言实现串口读写?
- java 中如何调用c中含有指针的方法?
- iis+tomcat5.0显示有点问题
class Test
{
int age;
String name; Test(int a, String n)
{
age = a;
name = n;
}
}class Test2 extends Test
{
// 这个构造函数是我后加的,可以运行了
Test2(int a, String n)
{
super(a, n);
} String home = "China";
}public class ASD
{
public static void main(String args[])
{
Test t1 = new Test(20, "ABC");
Test2 t2 = new Test2(40, "DEF");
System.out.print("age=" + t1.age + "\nname=" + t1.name + "\nhome=");
System.out.print("age=" + t2.age + "\nname=" + t2.name + "\nhome=" + t2.home);
}
}
class Text
{
int age;
String name;
// 构造函数加了个public, 构造函数方法名也写错了(应该是敲错了吧)
// 你写的什么你自己看吧!
public Text(int a, String n)
{
age = a;
name = n;
}
}public class QWE extends Text
{
// 这个也是我加的方法!
public QWE(int a, String n)
{
super(a, n);
// TODO Auto-generated constructor stub
}
// 这行是从下面的方法中移出来的!
String home = "China"; public static void main(String args[])
{
Text t1 = new Text(20, "ABC");
QWE q1 = new QWE(40, "DEF");
System.out.print("age=" + t1.age + "\nname=" + t1.name + "\nhome=");
// 下行你写了个错误的变量名 t2, 以后别这么马虎了! 不然没人帮你看程序.自己敲错
// 了字母的还要让别人给你找错误!
System.out.print("age=" + q1.age + "\nname=" + q1.name + "\nhome=" +q1.home);
}
}
还有点不明白,只有构造函数的类不能被继承吗?继承的时候都用了一次super,是重写/覆盖?
看的是[JAVA2程序设计]的PPT,上面讲的太简单了.....
// 这个类前 public 去掉了,填在了下面的类前.
// 因为必须把有main()函数的类声明为public的
class Person3
{
protected String name; //保护成员
protected int age;
void setdata(String n1,int a1)
{
name = n1;
age = a1;
}
public void print()
{
System.out.println(name+", "+age);
}
}
public class Student3 extends Person3
{
protected String dept;
public static void main(String args[])
{
Person3 p1 = new Person3();
p1.setdata("李大广",21) ;
p1.print();
Student3 s1 = new Student3() ;
s1.setdata("陈小瑞",19); //调用超类的成员方法
s1.dept="计算机系"; //访问本类的成员变量
s1.print();
}
}
而且this这个东西..似乎"有"和"没有"结果都是一样的
去掉了程序一样正常运行?
而且this这个东西..似乎"有"和"没有"结果都是一样的
去掉了程序一样正常运行?
----------------------------------------------------------
加this只是为了显式表明用的属性或方法是本类的,它在某些时候还是有用的! 例子如下:
class Person
{
int age; public setAge(int age)
{
this.age = age; // 因为类属性与参数同名, 所以必须要显示指出,不加的话楼主试试.
}
}