java 面向对象—继承


package j1210.cls;

// 如果一个程序需要输入数据, 则程序流程预先无法确定
// - 从标准输入读取数据
// - 经由程序参数
// - 从文件 / 网络等读取数据
// - 根据时间

// 语义
public class Animal /* 没有显式指定父类, 则父类是 */{
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String cry() {
return "...";
}

public Animal(String name) {
super();
this.name = name;
System.out.println("Animal created, name = " + name);
}

public Animal() {
System.out.println("Animal created, no parameters");
}

public static void main(String[] args) {
Animal a = new Animal("Xiaobai");
System.out.println(a.getName());
System.out.println(a.cry());

Cat c = new Cat("Xiaohei", "Black");
System.out.println(c.getName() + " is " + c.getColor());
System.out.println(c.cry());

Animal d = new Dog();
Animal e; // 声明对象引用的类型为较高层次 (父类) 的类型
if (System.currentTimeMillis() < 0) {
e = c; // 将子类的对象交给该引用
} else {
e = new Parrot("Packy");
}

System.out.println(d.cry());
System.out.println(e.cry()); // 对于在编码时无法预先确定具体类型的情况, 采用多态实现
}
}

// 一只猫是一个动物
// 继承是面向对象的基础 <- 多态建立在继承的基础之上
// 子类拥有父类的一切成员方法 / 成员属性
class Cat extends Animal {
// 猫是动物
// 动物有名字
// ---
// 猫有名字

// 如果设计中, 某个因素没有本质的区别, 应该使用属性
// class BlackCat extends Cat
// class YellowCat extends Cat
// class WhiteCat extends Cat
private String color;

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public Cat(String name) {
// 子类构造函数必须在第一句话
// - 调用父类的构造函数
// - 或者调用子类其他构造方法 (代理构造)
// - 否则, 则默认为 super() 调用父类无参构造方法, 如果父类没有无参构造方法, 则报错
super(name);
System.out.println("Cat created, name = " + name);
}

public Cat() {
super(); // 可省略
System.out.println("Cat created, no parameters");
}

public Cat(String name, String color) {
// 调用自身的另外一个构造方法来构造对象 (代理构造)
this(name);
System.out.println("Cat created, color = " + color);
this.color = color;
}

// 覆盖 / 重写
// 子类中出现名字以及形式参数列表与父类完全一致的函数
// 允许子类重写父类的成员方法, 实现完全不同的功能
public String cry() {
return "moew";
}
}

// 一条狗是一个动物
class Dog extends Animal {
// 如果类中没有显示编写构造方法, 则类中会存在一个默认的无参构造方法, 方法体仅有一句话 super();
public String cry() {
return "wang";
}
}

class Parrot extends Animal {
public Parrot(String name) {
super(name);
}

// 需求中, 子类成员方法的实现与父类有本质的区别, 才应该使用覆盖
public String cry() {
return "My name is " + getName();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值