JAVA面向对象--继承性

一、继承性

继承是面向对象的第二大特性,而继承性要解决的就是代码重用问题,利用继承性可以从已有的类继续派生处新的子类,也可以利用子类扩展处更多的操作功能

继承性严格来讲就是指扩充一个类已有的功能。如法如下:

class 子类 extends 父类{}

继承的基本实现:

package oop;
​
/**
 * 面向对象三大特性之一-----继承性
 */
class Person{//定义一个人类
    private String name;//定义属性名字
    private int age;//定义属性年龄
    //定义get和set方法设置和获取属性
    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;//定义学生类特有属性
    //定义get和set方法
    public String getSchool() {
        return school;
    }
​
    public void setSchool(String school) {
        this.school = school;
    }
}
//定义测试类
public class TestDemo {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.setName("小齐" );
        stu.setAge(23);
        stu.setSchool("北京大学");
        System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge()+",学校:"+stu.getSchool());
    }
}
​
  1. 子类即使不扩充父类,也属于维持功能的状态

  2. 子类实际上是将父类定义得更加具体化得一种手段


继承的限制:

限制一:Java中不允许多重继承,只允许多层继承(继承关系最多不要超过三层)

class A{}
class B extends A{}
class C extends B{}

限制二:子类继承父类时,严格来讲会继承父类的全部操作,但是对于所有的私有属性属于隐式继承,而所有的非私有属性操作属于显示继承

限制三:在子类对象构造前一定会默认调用父类的构造(默认使用无参构造),以保证父类的对象先实例化,子类对象后实例化

super()方法主要是调用父类的构造方法,所以必须放在子类构造方法的首行

当父类中提供有无参的构造方法时,是否编写super()没有区别。但是如果父类中没有无参构造方法,则必须明确地使用super()调用父类指定参数地构造方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值