乐趣区

关于java:java-继承

一.继承

  • 概念

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

  • 类的继承格局

    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 : 红

退出移动版