`
静静的小谱
  • 浏览: 18952 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 面向对象—继承

    博客分类:
  • 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();
	}
}
分享到:
评论

相关推荐

    java 面向对象 继承 PDF格式

    PDF(Portable Document Format)是用于存储和分发文档的标准格式,这里的"java 面向对象 继承 PDF格式"可能是指一份详细讲解Java面向对象继承概念的教程文档。通过阅读这份PDF,读者可以深入理解Java中的继承机制、...

    Java-Java面向对象继承的实现教程

    在Java编程语言中,面向...学习Java面向对象继承的实现,不仅有助于提升编程技巧,还能更好地理解面向对象编程的核心理念。在实际开发过程中,结合视频教程和其他学习资源,可以加深对这一主题的理解,提高编程能力。

    Java面向对象之继承练习题.doc

    【Java面向对象之继承练习题】的解析与详解: 1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关...

    Java面向对象继承.pdf

    Java面向对象编程中的继承是其核心特性之一,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法。这样做的主要目的是提高代码的复用性、可扩展性和可维护性。 1. 提高代码的复用性:通过继承,...

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析.md

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析

    Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析.md

    Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析

    java面向对象三要素封装继承和多态源码

    java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素...

    Java面向对象程序设计

    Java面向对象程序设计是编程领域中的重要主题,尤其在企业级应用开发中占据主导地位。本教程涵盖了这一关键概念,旨在帮助学习者深入理解和掌握Java的面向对象特性。以下是相关知识点的详细说明: 1. **面向对象...

    Java面向对象程序设计课后答案全解

    Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)原则,为开发者提供了构建复杂软件系统的方法。本资源包含了该课程所有章节的课后习题答案,帮助学习者深入理解Java语言的面向对象...

    Java面向对象程序设计+源代码+课后习题答案)

    Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)的概念,是一种强大的编程范式。在Java中,OOP的核心概念包括类、对象、封装、继承、多态等。这本书"Java面向对象程序设计"由耿祥义和...

    Java面向对象应用程序开发

    Java面向对象应用程序开发是软件开发领域中的核心主题,尤其对于初学者和专业开发者而言,理解并掌握这一技术至关重要。Java语言以其强大的面向对象特性、跨平台兼容性以及丰富的类库,成为了开发各种类型应用程序的...

    Java面向对象精髓编程

    Java面向对象精髓编程是Java开发的核心概念,它涵盖了类、对象、封装、继承、多态等关键要素。本文将深入探讨这些概念,并结合实际案例,帮助初学者从零开始掌握Java编程。 首先,我们从“Hello, World!”开始。这...

    JAVA面向对象程序设计(期末考试试题及答案)

    JAVA面向对象程序设计知识点总结 JAVA面向对象程序设计是 Java 编程语言的核心 contents,涵盖了面向对象编程的基本概念、语法规则、编程技术和实际应用等方面的知识。本文总结了 JAVA面向对象程序设计的知识点,...

    习题解答-Java面向对象程序设计-邢国波-清华大学出版社.pdf

    Java面向对象程序设计是计算机科学中的一个重要主题,尤其在Java编程中。邢国波的《Java面向对象程序设计》一书旨在帮助读者理解和掌握Java语言的核心特性,特别是面向对象编程的概念。以下是根据提供的内容和标签...

    《Java面向对象程序设计(第2版)》课件

    Java面向对象程序设计是计算机科学中的一个重要领域,尤其在软件开发中占据核心地位。第二版的《Java面向对象程序设计》课件旨在深入浅出地介绍这一关键概念,帮助学习者掌握Java语言的基础以及面向对象编程的核心...

    Java面向对象程序设计耿祥义版课件

    Java面向对象程序设计是编程领域中的核心概念,尤其在企业级应用开发中占据了主导地位。耿祥义版的课程着重讲解了这一主题,通过PPT和源码的形式,旨在帮助学习者深入理解并掌握Java的面向对象特性。下面将详细阐述...

    Java面向对象知识点梳理(思维导图)

    资源描述:Java面向对象知识点的思维导图 内容概要: 这个资源是一个Java面向对象知识点的思维导图,它涵盖了Java中面向对象编程的核心概念和重要知识点。导图中包含了类、对象、继承、多态、封装等基本概念,同时...

    Java 面向对象 练习题与答案

    Java 面向对象编程练习题与答案 本资源摘要信息涵盖了 Java 面向对象编程的多个知识点,包括 Font 类、Toolkit 类、包机制、抽象类、数组操作等。 1. Font 类: Font 类是 Java 中的一个类,用于设置程序中的字体...

    java面向对象课程设计(有程序和报告)

    Java面向对象课程设计是计算机科学领域中一个重要的实践环节,旨在帮助学生深入理解面向对象编程的概念和技巧。在这个课程设计中,学生通常会被要求完成一个实际的项目,使用Java语言来实现,同时需要提交详细的报告...

Global site tag (gtag.js) - Google Analytics