当前位置:网站首页>Day018 Inheritance
Day018 Inheritance
2022-08-04 18:34:00 【Strange year】
目录
1、继承的使用
(1)使用继承
① 编写父类
[访问修饰符] class Pet {
//公共的属性和方法
}
②编写子类,继承父类
[访问修饰符] class Dog extends Pet {
//子类特有的属性和方法
}
注意:继承是Java中实现代码重用的重要手段之一.java中只支持单根继承,即一个类只能有一个直接父类.
2、继承的理解
(1)子类访问父类
① 访问父类构造方法
super();
super(name);
② 访问父类属性
super.name;
③ 访问父类方法
super.print()
注意:
(1)使用super关键字,super代表父类对象
(2)在子类构造方法中调用且必须是第一句
(3)不可以访问父类中定义为private的属性和方法
小结:
super关键字来访问父类的成员
super只能出现在子类的方法和构造方法中;
super调用构造方法时,只能是第一句;
super不能访问父类的private成员.
2、继承条件下的构造方法
2.1、继承条件下构造方法的调用规则 
2.2 子类继承父类的什么

2.3 Does the subclass inherit all the resources of the parent class??

2.4 小结

3、实例
创建一个Pet类作为父类
public class Pet {
private String name;
private int health;
private int love;
//添加构造方法
public Pet() {
}
public Pet(String name, int health, int love) {
this.name = name;
this.health = health;
this.love = love;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public void print(){
System.out.println("宠物信息");
System.out.println("昵称:"+this.getName()+"\n健康值:"+this.getHealth()+"\n亲密度:"+this.getLove()+"颜色:");
}
}
创建一个Dog类作为子类
public class Dog extends Pet {
//strain属性是DogAttributes unique to a class,None of the other classes
private String strain;
public Dog() {
}
public Dog(String name, int health, int love, String strain) {
super(name, health, love);
this.strain = strain;
}
public String getStrain() {
return strain;
}
public void setStrain(String strain) {
this.strain = strain;
}
}创建一个Cat类作为子类
public class Cat extends Pet {
// 定义Cat类独有的属性
private String color;
public Cat() {
super();// 调用父类Pet类里的无参构造方法
}
public Cat(String name, int health, int love, String color) {
super(name, health, love);
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}创建一个Penguin作为子类
public class Penguin {
private String name;
private int health;
private int love;
private String sex;
public Penguin() {
}
public Penguin(String name, int health, int love, String sex) {
this.name = name;
this.health = health;
this.love = love;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void print() {
System.out.println("宠物信息:昵称:" + this.getName() + ",健康值:"
+ this.getHealth() + ",亲密度:" + this.getLove());
}
}Finally create a test class for testing
public class Test {
public static void main(String[] args) {
// 创建Dog类对象
Dog dog1 = new Dog("旺财", 99, 99, "金毛");
//在Dog类中没有setName()方法,但是Dog类对象dog1是可以调用,因为Dog类继承了Pet类,所以dog1可以调用父类Pet类里的setName()方法
dog1.setName("来福");
dog1.print();
//创建Penguin类对象
Penguin penguin1 = new Penguin("QQ", 98, 100, "公");
penguin1.setHealth(100);
penguin1.print();
//创建Cat类对象
Cat cat1 = new Cat("Tom", 100, 80, "蓝色");
cat1.print();
//hashCode()在Cat里没有、在Cat的父类Pet类里也没有,hashCode()方法存在于Object类中,Object类是Pet类的默认父类,所以Cat类对象可以使用Pet类里的方法,也可以使用Pet类的父类里的方法
//声明一个类,如果没有指定其父类是谁,系统会让此类默认去继承Object类
int num =cat1.hashCode();
System.out.println(num);//1694203642
}
}边栏推荐
- Scala105-Spark.sql中collect_list用法
- 袋鼠云思枢:数驹DTengine,助力企业构建高效的流批一体数据湖计算平台
- 关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
- vantui 组件 van-field 路由切换时,字体样式混乱问题
- ERC721标准与加密猫
- 2022 May 1 Mathematical Modeling Question C Explanation
- Flask框架实现注册加密功能详解【Flask企业课学习】
- 【杰神说说】物联大师2.0版本预告
- Go language Go language, understand Go language file operation in one article
- July 31, 2022 Summary of the third week of summer vacation
猜你喜欢
随机推荐
【填空题】130道面试填空题
不论你是大众,科班和非科班,我这边整理很久,总结出的学习路线,还不快卷起来
合宙Cat1 4G模块Air724UG配置RNDIS网卡或PPP拨号,通过RNDIS网卡使开发板上网(以RV1126/1109开发板为例)
After EasyCVR is locally connected to the national standard device to map the public network, the local device cannot play and cascade the solution
C#爬虫之通过Selenium获取浏览器请求响应结果
路由懒加载
如何模拟后台API调用场景,很细!
八猴渲染器是什么?它能干什么?八猴软件的界面讲解
离线同步odps到mysql 中文乱码是因为?mysql已是utf8mb4
margin 塌陷和重合的理解
Scala104 - Built-in datetime functions for Spark.sql
buuctf(探险1)
袋鼠云思枢:数驹DTengine,助力企业构建高效的流批一体数据湖计算平台
谷歌开源芯片 180 纳米制造工艺
2022 May 1 Mathematical Modeling Question C Explanation
【注册荣耀开发者】赢【荣耀70】手机
在表格数据集上训练变分自编码器 (VAE)示例
网站设计师:Nicepage 4.15 Crack By Xacker
flink-cdc支持并行读取一张mysql表的binlog不?
EasyCVR本地接入国标设备映射公网后,本地设备出现无法播放与级联的解决方法









