继承关系中的构造方法

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

相关文章

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

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

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,