面向对象-(子父类中函数的特点-覆盖)

子父类的函数
1.当子类出现和父类一模一样的函数时。
2.当子类对象调用该函数,会运行子类函数的内容。
3.如同父类的函数被覆盖一样。

4.这种情况是函数的另一种特性 :重写 (覆盖)
5.区分函数的另一种:重载 (同名 不同参)

6.当子类继承父类,沿袭父类的功能到子类中。
7.但是子类虽具备该功能 ,但是功能内容切和父类不一致。
8.功能定义,并重写功能内容。

覆盖
1.子类覆盖了父类,必须保证子类权限大或者等于父类权限,否则编译失败
2.静态只能覆盖静态,静态不能覆盖非静态

重点
重载:只看同名函数的参数列表
重写(覆盖) 子类父类方法要 一模一样。

看一下例子:
//子继承父  中的函数 覆盖
public class Cover {

    public static void main(String[] args) {
 
         z c = new z();//创建 z类对象
         c.dem1();//调用
    }

}
class f{
    f(){}
    //原来的功能
    /*
     原来父类 的功能,只能打印 1 ,过来很久 我又不想打印1 我想打印 2
     我就继承父类
     */
    void dem1(){ //该功能和子类功能一模一样
        int i=0;
        System.out.println("1");
    }
    
}

class z extends f{//zi类 继承了 f 类
   z(){}
   //
   void dem1(){
       
      // System.out.println("1");//为什么注释?因为父类已经有了 不用在重新定义了
      // System.out.println("2");//重写 扩展功能
   }
    
}
输出的结果是: 1    为什么?因为 :该功能和子父类功能一模一样 所有覆盖了
如果输出的结果是:2  重写可以扩展该功能!

/*总结:子继承父类中函数的特点是:如果函数一模一样包括返回类型那就是覆盖
 子类的权限必须父大于等于父类权限,重写还可以扩展功能!
 
 */



猜你喜欢

转载自blog.csdn.net/xiexaioyao/article/details/78626358
今日推荐