Java基础巩固系列 面向对象的特征二:继承性

面向对象的特征二:继承性

1.为什么要设计继承性?(见图示)

2.通过class A extends B实现类的继承。   子类:A     父类:B(或者基类SuperClass)

3.子类继承父类以后父类中声明的属性、方法,子类就可以获取到

明确:

    1)但父类中有私有属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接调用罢了

    2)子类除了通过集成,获取父类的结构之外,还可以定义自己的特有的成分。

    3)extends:子类是对父类功能的“扩展”,明确子类不是父类的子集

4.Java中类的的继承性只支持单继承!一个类只能继承一个父类。反之,一个父类可以有多个子类。

5.子类父类是相对的概念

 

图示

代码示例

public 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;
    }

    public void eat(){
        System.out.println("吃饭");
    }

    public void walk(){
        System.out.println("走路");
    }
}


public class Student extends Person {
    private String schoolName;

    public Student() {

    }

    public Student(String name, int age) {
        this.setName(name);    //此次还没学习super先用this代替
        this.setAge(age);
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public void info(){
        System.out.println("我是一个学生");
    }


}


public class Worker extends Person{

}


public class Graduate extends Student{
    public void show(){
        System.out.println("我是一个研究生");
    }
}


public class TestExtends {

    public static void main(String[] args) {
        Student student = new Student();
        student.eat();

        Worker worker = new Worker();
        worker.eat();

        Student student1 = new Student("小明", 12);
        String name = student1.getName();
        int age = student1.getAge();
        System.out.println(name + age);

        Graduate graduate = new Graduate();
        graduate.eat();
        graduate.info();
        graduate.show();
    }

}

运行结果:

吃饭
吃饭
小明12
吃饭
我是一个学生
我是一个研究生

 

单继承示意图

子类父类是相对的概念

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值