继承
格式:
class 父类 { } class 子类 extends 父类 { }
为什么需要继承
接下来我们通过实例来说明这个需求。
开发动物类,其中动物分别为企鹅以及老鼠,要求如下:
- 企鹅:属性(姓名,id),方法(吃,睡,自我介绍)
- 老鼠:属性(姓名,id),方法(吃,睡,自我介绍)
企鹅类:
1 public class Penguin { 2 private String name; 3 private int id; 4 public Penguin(String myName, int myid) { 5 name = myName; 6 id = myid; 7 } 8 public void eat(){ 9 System.out.println(name+"正在吃"); 10 } 11 public void sleep(){ 12 System.out.println(name+"正在睡"); 13 } 14 public void introduction() { 15 System.out.println("大家好!我是" + id + "号" + name + "."); 16 } 17 }
老鼠类:
1 public class Mouse { 2 private String name; 3 private int id; 4 public Mouse(String myName, int myid) { 5 name = myName; 6 id = myid; 7 } 8 public void eat(){ 9 System.out.println(name+"正在吃"); 10 } 11 public void sleep(){ 12 System.out.println(name+"正在睡"); 13 } 14 public void introduction() { 15 System.out.println("大家好!我是" + id + "号" + name + "."); 16 } 17 }
从这两段代码可以看出来,代码存在重复了,导致后果就是代码量大且臃肿,而且维护性不高(维护性主要是后期需要修改的时候,就需要修改很多的代码,容易出错),所以要从根本上解决这两段代码的问题,就需要继承,将两段代码中相同的部分提取出来组成 一个父类:
公共父类:
1 public class Animal { 2 private String name; 3 private int id; 4 public Animal(String myName, int myid) { 5 name = myName; 6 id = myid; 7 } 8 public void eat(){ 9 System.out.println(name+"正在吃"); 10 } 11 public void sleep(){ 12 System.out.println(name+"正在睡"); 13 } 14 public void introduction() { 15 System.out.println("大家好!我是" + id + "号" + name + "."); 16 } 17 }
这个Animal类就可以作为一个父类,然后企鹅类和老鼠类继承这个类之后,就具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码) 继承之后的代码:
企鹅类:
1 public class Penguin extends Animal { 2 public Penguin(String myName, int myid) { 3 super(myName, myid); 4 } 5 }
老鼠类:
1 public class Mouse extends Animal { 2 public Mouse(String myName, int myid) { 3 super(myName, myid); 4 } 5 }