美文网首页
12、继承和组合

12、继承和组合

作者: 爱学习的代代 | 来源:发表于2021-03-25 08:18 被阅读0次

问题:
前面我们构建了一个商品类Merchandise,里面包含了一些属性。 此时因业务需要,我们需要创建一个手机类Phone,同时需要包含Merchandise里的属性和方法,又不想手动的复制代码到Phone类里,怎么办呢?

答案是: 继承

  1. 继承: 类名后面加extends 类名。
  2. 被继承的类叫做父类
  3. 继承者叫做子类
  4. Java中每一个类只能有一个父类
  5. 子类继承了父类的什么呢? 属性和方法
  6. 子类不能访问父类的private 属性和方法。

二、通过继承实现父类属性及方法的使用。

Q: 初始化一个Phone对象,并把该对象的售价,库存等输出出来。
A: 代码如下

<TestPhone.java>
public class TestPhone {
    public static void main(String[] args) {

        Phone phone = new Phone(6.0,3.5,8.0,128.0,"小米", "安卓");

        phone.setId(1);
        phone.setName("小米9");
        phone.setCount(100);
        phone.setSoldPrice(3999);
        phone.setPurchasingRrice(3599);

        phone.describe();


    }
}


<Phone.java>
public class Phone extends Merchandise {


//  给phone 增加新的属性和方法:

    private double screenSize;
    private double cpuHZ;
    private double memoryG;
    private double storageG;
    private String brand;
    private String os;

    public  Phone(double screenSize, double cpuHZ, double memoryG, double storageG, String brand, String os) {
        this.screenSize = screenSize;
        this.cpuHZ = cpuHZ;
        this.memoryG = memoryG;
        this.storageG = storageG;
        this.brand = brand;
        this.os = os;
    }

    @Override
    public void describe() {
        super.describe();
        System.out.println("手机配置信息如下:\n屏幕大小:" + this.screenSize + "英寸 \nCPU主频:" + this.cpuHZ + "GHz \n内存大小:" + this.memoryG + "G \n存储空间:" + storageG + "G \n品牌:" + this.brand + " \n操作系统:" + os);
    }

    public double getScreenSize() {
        return screenSize;
    }

    public double getCpuHZ() {
        return cpuHZ;
    }

    public double getMemoryG() {
        return memoryG;
    }

    public double getStorageG() {
        return storageG;
    }

    public String getBrand() {
        return brand;
    }

    public String getOs() {
        return os;
    }

    public void setScreenSize(double screenSize) {
        this.screenSize = screenSize;
    }

    public void setCpuHZ(double cpuHZ) {
        this.cpuHZ = cpuHZ;
    }

    public void setMemoryG(double memoryG) {
        this.memoryG = memoryG;
    }

    public void setStorageG(double storageG) {
        this.storageG = storageG;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public void setOs(String os) {
        this.os = os;
    }

}

相关文章

  • 12、继承和组合

    问题:前面我们构建了一个商品类Merchandise,里面包含了一些属性。 此时因业务需要,我们需要创建一个手机类...

  • 组合寄生继承和组合继承

    1.js中实现组合继承(B继承A): function A(name){ this.name = name; ...

  • js一些技巧.md

    js中的constructor和prototype 组合继承与寄生继承 组合继承 可以继承实例属性和方法,也可以继...

  • 组合和继承

    需要一个类的某个功能使用组合需要那个类的所有功能使用继承组合优于继承,接口优于实现

  • PHP学习2

    六.继承与多态 1. 类的组合和继承(继承===“是、像”、“父与子”,组合===“需要”、“整体与局部”) 组合...

  • ES5和ES6 实现继承方式

    在ES5 中:通过原型链实现继承的,常见的继承方式是组合继承和寄生组合继承;在ES6中:通过Class来继承 组合...

  • [收藏文章]《Java编程思想》之重点笔记

    1、组合和继承之间的选择 组合和继承都允许在新的类中放置子对象,组合是显式的这样做,而继承则是隐式的做。 组合技术...

  • 【python面试指北】3.类和面向对象

    面向对象编程 封装、继承、多态 组合与继承 优先使用组合(has a)而非继承(is a) 类变量和实例变量的区别...

  • 继承、组合、聚合

    继承和组合的区别 继承是 is A,组合是has A。 车有轮子、引擎、轴承。 车不能继承轮子、引擎、轴承,因为车...

  • 组合模式(Composite)

    在探讨Java组合模式之前,先要明白几个概念的区别:继承、组合和聚合。 继承是is-a的关系。组合和聚合有点像,有...

网友评论

      本文标题:12、继承和组合

      本文链接:https://www.haomeiwen.com/subject/kndchltx.html