super/重写覆盖

来源:互联网 发布:淘宝卖家登陆中心 编辑:程序博客网 时间:2024/05/22 15:22

package softstudy;
/*super关键字
* 子父类出现后 类成员的特点:
*
* 类中成员:
* 1,变量
* 2,函数
* 3,构造函数
*
* 1,变量
* 如果子类中出现私有的同名成员变量时
* 子类要访问本类中的变量 用this
* 子类要访问父类中的同名变量 用super
*
* super和this的使用几乎一致
* this代表本类对象的引用
* super代表父类对象的引用
*
*子父类中函数
*当子类出现和父类一模一样的函数时
*当子类对象调用该函数 会运行子类函数的内容
*如同父类的函数的覆盖一样
*
*这种情况是函数的另一个特性:重写(覆盖)
*
*当子类继承了父类 沿袭了父类的功能到子类中
*但是子类虽具备该功能 但是功能却和父类不一致
*这时 没有必要定义新功能 而是使用覆盖特殊 保留父类的功能定义并重写功能内容
*
*覆盖:
*1,子类覆盖父类 必须要保证子类权限大于等于父类权限 才可以覆盖 否则编译失败
*2,静态只能覆盖静态 不可覆盖非静态
*
*权限 ,1private 2,public 3,默认
*
*记住大家:
*重载只看同名函数的参试列表
*重写 子父类方法要一模一样
* */
class Fu{
//int num = 4;
void show(){

    System.out.println("fu show");

}
void speak(){

    System.out.println("vb");}

}
class Zi extends Fu{
//int num = 5;
void speak(){

    System.out.println("java");}void show(){    System.out.println("zi show");//this代表的是本类对象的引用,super代表的是父类对象的引用

}
}

public class ExtendsDemo2 {

/** * @param args */public static void main(String[] args) {    // TODO Auto-generated method stub    Zi z = new Zi();    //System.out.println(z.num+"...."+z.num);    z.show();    z.speak();}

}
class Tel{
void show(){
System.out.println(“number”);
//System.out.println(“name”);
}
void song(){
System.out.println(“sing”);
}
}
class NewTel extends Tel{
void show(){
//System.out.println(“number”);
super.show();//调用父类的方法
System.out.println(“name”);
System.out.println(“pic”);
}
}

0 0
原创粉丝点击