继承

继承概述:

          实际开发中,我们发现好多类中的内容是相似的,于是我们就把这些相似的内容抽取出来放到一个类中,

       然后让那多个类和这个类产生一个关系,这个关系就是继承. 继承用 extends 关键字表示.

 

继承的例子:

      

 1 public class Person {   //定义一个类
 2     String name;        
 3     int age;
 4 
 5     public Person() {    ////alt+shift+s 自动生成 构造方法
 6         super();
 7         // TODO 自动生成的构造函数存根
 8     }
 9 
10     public Person(String name, int age) {  //alt+shift+s 自动生成 构造方法
11         super();
12         this.name = name;
13         this.age = age;
14     }
15 
16     public String getName() {        ////alt+shift+s 自动生成get方法
17         return name;
18     }
19 
20     public void setName(String name) {    //alt+shift+s 自动生成 set方法
21         this.name = name;
22     }
23 
24     public int getAge() {
25         return age;
26     }
27 
28     public void setAge(int age) {
29         this.age = age;
30     }
31 
32     public void eat() {        //自定义的方法
33         System.out.println("老师在吃饭");
34     }
35 }
父类

 

Person类中有属性Name,属性age,构造方法,行为方法。

如果定义多个类都需要重复写这些代码我们就应该使用继承。

如:定义一个学生类,工人类,教师类。

 

1 public class Student extends Person{
2     public void eat() {            //重写eat方法
3         System.out.println("学生在吃饭");
4     }
5 }
子类

 

以学生类为例,同样有属性Name,属性age,所以继承了Person类就

可以不用声明这些属性,构造方法了。但是eat方法里输出的是老师而

不是学生,所以需要重新在学生类中重新定义。

 

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         Student s = new Student();    //new一个学生类
 5         s.name = "B.Lasting.尊";          //设置名字
 6         s.age = 18;                      //设置年龄
 7         s.eat();                      //调用eat方法
 8     }
 9 
10 }
继承应用

 

 

随笔说:

        继承提高了代码的复用性,但是也有弊端。子类只能继承父类的非私有成员。(成员变量和成员方法)

    子类不能继承父类的构造方法,但是可以通过super来使用。不要为了部分功能而去使用继承。

 

posted @ 2017-08-20 00:29  B_Lasting_尊  阅读(187)  评论(0编辑  收藏  举报