三大特征-继承性

继承是一种由已有类创建新类的机制,子类可以让我们不必一切从头做起

子类可以继承父类的属性和行为,同时又可以增添子类独有的数据和数据上的操作

  • 子类继承的方法只能操作子类继承和隐藏的成员变量
  • 子类重写或新增的方法可以操作子类继承和新声明的成员变量,不能直接操作隐藏的成员变量(super)
  • 子类继承的变量和方法,就好像它们在子类中直接声明一样,可以被子类自己声明的任何实例方法访问

一、继承的意义
在这里插入图片描述
继承关系,is-a,苹果是水果,子类可以被当作父类看待

@Override注解,推荐写上,可以校验方法重写,提高程序可读性

设计原则:对于已经投入使用的类,尽量不要进行修改

​       推荐定义一个新类继承旧类,重复利用共性内容,并且添加改动新内容

// 父类
public class Phone {
    public  void call(){
        System.out.println("打电话");
    }
    public  void send(){
        System.out.println("发短信");
    }
    public void show(){
        System.out.println("显示号码");
    }
}
// 子类
public class NewPhone extends Phone {
    @Override 
    public void show() {
        super.show(); // 复用父类show()方法
        System.out.println("显示姓名"); // 子类新增更多内容
        System.out.println("显示头像");
    }
}

二、子类的继承性

  • 父类、子类同包中:子类可以继承父类public、protected、友好的成员
  • 父类、子类不同包:子类只能继承父类public、protected的成员
    在这里插入图片描述
    在这里插入图片描述

三、子类对象的特点

用子类创建对象时,父类的成员变量也都分配了内存空间

只将其中一部分,即子类继承的那部分成员变量,作为分配给子类对象的变量

例如,父类的private成员变量尽管分配了内存空间,也不作为子类对象的变量

   当然也不是父类某个对象的变量,因为根本没有使用父类创建任何对象

子类创建对象时似乎浪费了一些内存,实际情况并非如此,子类从父类继承的方法可以操作未继承的变量

// 父类 People
public class People {
    private int averHeight = 166; // private修饰

    public int getAverHeight() {
        return averHeight;
    }
}

// 子类 ChinaPeople
public class ChinaPeople extends People {
    int height;

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }
}

// 测试类 Test
public class Test {
    public static void main(String[] args) {
        ChinaPeople chinaPeople = new ChinaPeople();
        // 父类私有的averHeight
        System.out.println(chinaPeople.getAverHeight()); // 166
        // 子类独有的height
        chinaPeople.setHeight(180);
        System.out.println(chinaPeople.getHeight());     // 180
    }
}
  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼悠奕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值