一.继承

  • 概念

    继承就是子类继承父类的特色和行为,使得子类从父类继承办法,
    使得子类具备父类雷同的行为。

  • 类的继承格局

    class 父类 {
    }
    class 子类 extends 父类 {
    }

  • 为什么须要继承

企鹅类:public class Penguin {     private String name;     private int id;     public Penguin(String myName, int  myid) {         name = myName;         id = myid;     }     public void eat(){         System.out.println(name+"正在吃");     }    public void sleep(){        System.out.println(name+"正在睡");    }    public void introduction() {         System.out.println("大家好!我是"         + id + "号" + name + ".");     } }老鼠类:public class Mouse {     private String name;     private int id;     public Mouse(String myName, int  myid) {         name = myName;         id = myid;     }     public void eat(){         System.out.println(name+"正在吃");     }    public void sleep(){        System.out.println(name+"正在睡");    }    public void introduction() {         System.out.println("大家好!我是"         + id + "号" + name + ".");     } }【如果要开发一个类(动物类)中老鼠类和猫类,就须要属性和办法,代码就会存在反复,所以要从根本上解决问题,就须要继承,将两段代码中雷同的局部提取进去组成一个父类:】公共类:public class Animal {     private String name;      private int id;     public Animal(String myName, int myid) {         name = myName;         id = myid;    }     public void eat(){         System.out.println(name+"正在吃");     }    public void sleep(){        System.out.println(name+"正在睡");    }    public void introduction() {         System.out.println("大家好!我是"         + id + "号" + name + ".");     } }【这个Animal类就能够作为一个公共类,而后企鹅类和老鼠类继承这个类之后,就有公共类当中的属性和办法,子类就不会存在反复的代码,,代码也更加简洁, 继承之后的代码:】企鹅类:public class Penguin extends Animal {     public Penguin(String myName, int myid) {         super(myName, myid);     } }老鼠类:public class Mouse extends Animal {     public Mouse(String myName, int myid) {         super(myName, myid);     } }
  • 留神

    Java 不反对多继承,但反对多重继承。

    单继承public class A{....}public class B extends A{...}

    多重继承public class A{...}public class B extends A{...}public class C extends B{...}

    不同类继承同一类public class A{...}public class B extends A{...}public class C extends A{...}

    多继承(不反对)public class A{...}public class B{...}public class C extends A,B{...}
  • 重写

    如果子类父类中呈现重名的成员办法,这时的拜访是一种非凡状况,叫做办法重写
    办法重写 :写与父类雷同的成员办法时,会更新父类,称为重写。申明不变,从新实现。
    class Fu {
    public void show() {
    System.out.println("Fu show");
    }
    }
    class Zi extends Fu {
    【子类重写了父类的show办法】
    public void show() {
    System.out.println("Zi show");
    }
    }
    public class Demo10{
    public static void main(String[] args) {
    Zi z = new Zi();
    【子类中有show办法,只执行重写后的show办法】
    z.show(); // Zi show
    }
    }

  • super与this关键字

    super:对父类的拜访。
    this:指向本人的。
    class shueiguo {
    public void e() {
    System.out.println("红"); }
    }
    class pingguo extends shueiguo {
    public void e() {
    System.out.println("红");
    }
    public void ee() {
    this.eat(); 【this 调用本类的办法】
    super.eat(); 【 super 调用父类的办法】
    }
    }
    public class Demo08 {
    public static void main(String[] args) {
    shueiguo a = new shueiguo();
    a.e();
    pingguo c = new pingguo();
    c.ee();
    }
    }
    后果:
    shueiguo : 红
    pingguo : 红
    shueiguo :红