测试是我职业生涯中最喜欢的工作,也希望自己在这个空间里每天进步一点点,改善自己,提高自己。

java-lesson4上-类的继承

上一篇 / 下一篇  2008-02-22 17:38:21 / 个人分类:java-lesson4(上)

1. 通过继承可以简化类得定义
2. java只支持单继承,不允许多重继承。(不能同时继承多个类)
3. 可以有多层继承,即一个类可以继承某一个类的子类
   如B继承了A,类C又可以继承B,那么类C也间接继承了A。
4. 子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法。 
 在子类的构造方法中可以使用super(参数列表)调用父类的构造方法
不继承父类中private的成员变量和方法
5. 如果子类的构造方法中没有显示调用父类构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法。
子类是必须要调用父类的构造函数的,
class Person
{
pulic String name;pulic int age;
pulic Person(String name,int age)//构造方法
  {
   this.name=name;
   this.age=age;
  }
public void getinfo()
 {
  System.out.println("name="+name+",age="+age);
  }
}

class Student extends Person //没有构造方法
{
pulic String school;
pulic void study()
  {
  }
}

class TestStudent
{
pulic static void(String [] args)
  {
   Student st= new student();
   st.name="zhang";
   st.age=12;
   st.getinfo();
  }
}

注明:
1).上面的程序执行时会提示错误,会提示子类找不到不带参数的Person构造函数,
如果一个应用程序中没有构造函数,则系统会自动增加一个不带参数的构造函数,
所以Student有一个默认的不带参数的构造函数。
在创建Student对象时,在调用student自身构造函数之前是需要先调用父类Person的不带参数的构造函数,
而Person中已经有带参数的构造函数,没有不带参数的构造函数,所以上面的程序运行时,编译器会报错。
2).针对这种情况,我们可以在Student类中的增加一个构造函数
public Student()
{
 super(”zhangsan",15)
}
在运行就不会出错的。
3).子类无论如何都需要调用父类的构造函数的。
4).使用super操作被隐藏的成员变量和方法,super.x和super.play()
5).this是调用全局变量,this()是调用其他的函数

6.如果一个类的生命中没有使用extends关键字,这个类被系统默认为是Object的子类,
Object是包java.lang中的类
7.成员变量的隐藏和方法的重写
当子类定义的成员变量和父类的成员变量同时,父类的成员变量不能被继承,
子类有和父类的方法一样的情况也不继承。
8.如果在子类中想使用被子类隐藏的父类的成员或方法就可以使用关键字super.
例如:super.x;super.play()
子类如果想调用父类的构造方法,必须在子类的构造方法中使用super,
并且必须是子类构造方法中的头条语句
super(父类构造方法中的变量)

class student extends Person
{

}

9.注意如果一个应用程序中没有构造函数,则系统会自动增加一个不带参数的构造函数
10.在定义类时,只要在父类中定义了有参数的构造函数,还要定义一个无参数的构造函数,因为它的子类中需要调用父类的构造函数
11.
class Person
{
pulic String name;pulic int age;
pulic Person(String name,int age)//构造方法
  {
   this.name=name;
   this.age=age;
  }
public void getinfo()
 {
  System.out.println("name="+name+",age="+age);
  }
}

class Student extends Person //没有构造方法
{
pulic String school;
pulic void study()
  {
  }
}

class TestStudent
{
pulic static void(String [] args)
  {
   Student st= new student();
   st.name="zhang";
   st.age=12;
   st.getinfo();
  }
}


TAG:

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 15656
  • 日志数: 33
  • 图片数: 1
  • 建立时间: 2008-02-18
  • 更新时间: 2008-09-18

RSS订阅

Open Toolbar