Java-面向对象(高级篇)--继承的基本概念

来源:互联网 发布:服装淘宝店从哪里进货 编辑:程序博客网 时间:2024/05/21 21:42

继承的基本概念
现在假设一个Person类,其中包括name和age两个属性,而另外一个Student类,需要包含name和age、school属性。代码如下:
【Person类】

class Person{    private String name;    private int age;    public String getName(){        return name;    }    public void setNmae(String name){        this.name=name;    }    public int getAge(){        return age;    }    public void setAge(int age){        this.age=age;    }}

【Student类】

class Student{    private String name;    private int age;    private String school;    public String getName(){        return name;    }    public void setName(String name){        this.name=name;    }    public int getAge(){        return age;    }    public void setAge(int age){        this.age=age;    }    public void setSchool(String school){        this.age=age;    }    public String getSchool(){        return school;    }}

从上面的代码可以发现Person类中已经有了name和age两个属性及对应的setter和getter方法,而且Person和Student也属于有关系的类。因为一个学生肯定是一个人。所以现在希望可以不用在Student类中再重新声明这两个属性及对应的setter和getter方法,这时就溢出了继承的概念。
在Java中要实现继承类,可以直接使用以下语句来表示:
【类的继承格式】
*class 父类{} //定义父类
class 子类 exteds 父类{} //使用extends关键字实现继承*
下面来进行继承的操作:

class Person{    private String name;    private int age;    public String getName(){        return name;    }    public void setName(String name){        this.name=name;    }    public int getAge(){        return age;    }    public void setAge(int age){        this.age=age;    }}class Student extends Person{    private String school;    public void setSchool(String school){        this.school=school;    }    public String getSchool(){        return school;    }}public class ExtDemo2{    public static void main(String args[]){        Student stu=new Student();        stu.setName("张三");        stu.setAge(19);        stu.setSchool("ZZU");        System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge()+",学校:"+stu.getSchool());    }}

运行结果为:

这里写图片描述
从运行结果可以发现,在Student类中并没有定义name和age的相关方法属性,但是通过继承的功能把父类的操作拿到了子类中使用,而且在子类中我们又增加了school属性及其相关的属性和方法。从而扩充了Person类。
需要注意的是,Java中只允许多层继承,不允许多重继承。即Java中只能单继承,即一个子类只能继承一个父类。但是允许进行多层继承,即一个子类可以有一个父类,一个父类还可以有另一个父类。
在使用继承时应注意的是:子类是不能直接访问父类中的私有成员变量的,子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。,但是可以通过setter和getter方法调用,进行访问

1 0
原创粉丝点击