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

继承的基本概念
现在假设一个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方法调用,进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aotulive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值