继承关系中的构造方法

2024-05-12 03:38
文章标签 关系 构造方法 继承

本文主要是介绍继承关系中的构造方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

class Pet{
private String name;
private int health;
private int love; //为了演示,属性定为了不可继承的私有类型,但通过方法调用这些属性

public String getName(){
return name;
}

public int getHealth(){
return health;
}

public int getLove(){
return love;
}

//无参构造方法
public Pet(){
name = "宠物";
health = 100;
love = 20;
}
//有参构造方法
public Pet(String name){
this.name = name;
}
//父类的方法
public void print(){
System.out.println("我的名字叫"+name+",健康值是"+health+",亲密度为"+love);
}

}

class Dog extends Pet{
private String strain;
public Dog(String strain){
super(); //可以不写该句;
this.strain = strain;
/* 写不写super();语句都一样,如果没有通过super显示的调用父类的有参构造方法,也没有通过this显示的
调用自身的其他构造方法。系统会自动调用父类的无参构造方法。 */
}
//重写父类输出方法
public void print(){
System.out.println("Dog类\n我是一只"+getName()+",品种是"+strain+",健康值是"+getHealth()+",亲密度为"+getLove());
}
}

class Cat extends Pet{
private String sex;

//有参构造方法
public Cat(String sex){
super("宠物猫"); //调用父类相应的有参构造方法,与Dod中的super()不同;
this.sex = sex;
}
//重写父类输出方法
public void print(){
System.out.println("Cat类\n我是一只"+getName()+",性别是"+this.sex+",健康值是"+getHealth()+",亲密度为"+getLove());
}
}

class Pig extends Pet{
private String name = "笨猪";
private int IQ; //猪的智商

//无参构造方法;
public Pig(){
System.out.println("Pig类\n利用this.调用了自身的无参构造方法!");
}

//有参构造方法
public Pig(int IQ){
this(); //用this.调用自身的相应无参构造方法;
this.IQ = IQ;
}
//重写父类输出方法
public void print(){
System.out.println("我的名字叫:"+name+",智商是:"+IQ);
}
}

public class Dm{
public static void main(String[] args){
Dog d = new Dog("牧羊犬");
d.print();

Cat c = new Cat("雌");
c.print();

Pig p = new Pig(2);
p.print();
}
}
/*-----------------------------------
Dog类
我是一只宠物,品种是牧羊犬,健康值是100,亲密度为20
Cat类
我是一只宠物猫,性别是雌,健康值是0,亲密度为0
Pig类
利用this.调用了自身的无参构造方法!
我的名字叫:笨猪,智商是:2
-----------------------------------*/


这篇关于继承关系中的构造方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981496

相关文章

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p