java面向对象之继承

来源:互联网 发布:java小说阅读器源码 编辑:程序博客网 时间:2024/04/27 18:44

在java中,面向对象的三大特点之一继承,那为什么java要有这个特性呢?

首先看二个类,一个是Worker一个是Student,

class Worker {
String name;
int age;

void work(){
System.out.println("work work");
}
}



class Student {
String name;
int age;

void study(){
System.out.println("study study");
}
}

分析这二个类中的代码我们发现,除了方法名字不一样,像属性名 都一样,说明这二个类有很多共同的点,那么此时如果把共同的封装起来,他们二个类用封装起来的类,或者说与封装起来的类建立某种联系即可,这时候继承就自然而然出现了我们的视野中,

那么好现在定义一个Person类去封装共同的点

class Person{
String name;
int age;
void work(){
System.out.println("");
}
}

那么这个时候Worker类和Student只要这么写就可以了

class Student extends Person{


}


class Worker extends Person{

}

如果想验证下可以这样 在main方法中创建各自对象打印出age的值

Student st =new Student();
System.out.println("Student::age="+st.age);
Worker w =new Worker();
System.out.println("Worker::age="+w.age);

结果:

Student::age=0
Worker::age=0

通过打印出来的结果发现 这二个类中虽然什么都没写 ,也没写age这个属性,但是打印出来了结果,都是因为继承了Person类,这就提高了代码的复用性,复用性体现在没必要把共同的东西在每个类中都去写,这样修改起来也方便,这就增强了代码的维护性

   通过继承我们可以继承父类中的方法,如果每个子类具体业务不一样,可以自己去实现,

在java中只支持单继承,通过上面的我们也能想的到为什么,因为如果一个类继承几个类的话,遇到属性名一样的,怎么区分是继承那个类而来的,

java中支持多层继承比如 A继承B ,B继承C,C继承D

一般越到基类,越抽象,因为基类是从几个子类向上抽取而来的,具体的实现是子类去完成的任务,

一般在看开源的代码的时候,继承和接口使用的特别的多,所以说做android,java基础一定要打好,在看开源的代码,如果遇到一个类继承很多个类, 代码应该从顶层类看起,查看他有什么属性 方法等,因为这些都是提供给子类使用的,这样看整体就清晰很多











0 0
原创粉丝点击