super/重写覆盖

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重写(override)是指在子类中重新实现(覆盖)从父类继承来的方法。在Java中,子类可以通过重写父类的方法来改变该方法的行为。重写方法的签名(即方法名、参数类型和返回类型)必须与被重写方法的签名相同,否则编译器会报错。 在子类中重写父类的方法时,可以使用super关键字来调用父类的方法。例如,可以在子类中使用super.methodName()来调用父类中的methodName方法。 重写的目的通常是为了改变方法的行为,例如根据子类的特殊需求来实现不同的逻辑,或者提高方法的性能等。 下面是一个简单的重写示例,假设有一个Animal类和一个Cat类,Cat类继承自Animal类,并重写了Animal类的makeSound方法: ```java public class Animal { public void makeSound() { System.out.println("The animal makes a sound."); } } public class Cat extends Animal { @Override public void makeSound() { System.out.println("The cat meows."); } } ``` 在这个例子中,Animal类有一个makeSound方法,输出一个字符串表示动物发出了声音。Cat类继承了Animal类,并重写了makeSound方法,使得猫发出的声音是“meows”,而不是“makes a sound”。 当我们调用Cat类的makeSound方法时,会优先调用Cat类中的方法,而不是Animal类的方法。因此,下面的代码 ```java Animal animal = new Cat(); animal.makeSound(); ``` 输出的结果是: ``` The cat meows. ``` 这说明Cat类中的makeSound方法已经成功地重写了Animal类的makeSound方法,使得猫发出了“meows”的声音。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值