java基础 第十章(this,继承,重写和重载的区别)

一、this

    1.指向当前对象

       (1)静态方法中不能this调用,因为静态方法是共享的。

       (2)静态方法的调用:类名.方法名();

                非静态方法的调用:new 类类型.方法名();

     2.this指哪个对象调用了这个方法,this就指向哪个方法。

     3.类中每个成员变量都有this指向,当局部变量和成员变量重名的时候,必须要加this,不叫this,局部变量给局部变量赋值

        例:class  Student{

                    private int num;

                    public student( int num ){

                        this.num = num  // 不加this  num = num

                    }

               }

二、继承

       1.表示层级关系,下一级完全拥有上一级的属性。

       2.继承是类与类之间的关系。

       3.继承只能单继承。

       4.继承就是向上抽取的过程

       5.继承的关键字 extends

        例:class gFather{

                    public void eat(){

                        System.out.println("会吃饭");

                    }

                    public void shuai(){

                        System.out.println("长得很帅");

                    }

               }

               class Father extends gFather{

                    public void height(){

                         System.out.println("长得高");

                    }

                    public void money(){

                         System.out.println("有钱")

                    }

              }

              class Son extends Father{

                    public void Studey(){

                         System.out.println("学习好");

                    }

              }

              public class test{

                    public static void main(Striing[] args){

                         Son son1 = new Son();

                         Son1.eat();

                         Son1.money();

                         Son1.study();

                    }

              }

        6.java 虽然没有多继承,但是可以实现多重继承。

三、重写和重载的区别。

       补充:

                覆盖 ——> 前提条件:要有继承

                                                     方法名,返回值,参数列表要和父类一模一样

                                                     子类权限 >= 父类

                权限 ——> public > protected(默认)

                                   注意:private,加上就等于封装了,外界访问不到。

       1.重载:方法名相同,参数列表不同,在同一个类中。

       2.重写:是继承的关系,要求子类覆盖父类的方法,而且方法名,返回值,参数列表一样,但控制范围子类 >= 父类

       例:class Animal{

                   public void eat(){

                        System.out.println("吃")

                   }

              }

              class pig extends Animal{

                  public void eat(){           // 改为  public void eat ( int a ){ 就有重载了

                      System.out.println("猪吃");

                  }

                  //还有
                  public void eat(){

                      System.out.println("吃");

                  }

              }

原文地址:https://www.cnblogs.com/catcoffer/p/8995919.html