// 定义一个抽象的父类     abstract class Figure     {         //声明抽象方法:         //父类中的所有家里人可以用的方法必须都应用到子类中         abstract public object getValue();//或者用virtual但是后面必须声明主体部分{ return null; }         abstract public Figure Add(Figure f1); //{ return null; }…
上一篇把C#语言的继承,多态里的特殊的情况做了一下总结,其实那一部分代码都是从Java翻译过去的,今天来总结一下Java在这种情况下是怎么调用的. 上一篇我们说的是:1.多态,只在多态系里方法调用,很简单,先调重写方法,如果没有再调父类的虚方法.2.非多态,只自声明时类型,先调自身的方法(比如非继承普通方法,new修饰的方法),如果没有再看继承来的方法,最后再看多态系方法(也就是重写了的方法) 但是Java里做了测试,这个规律不适用,下面是测试代码 public class Shape { }…
java中的方法天生具有继承多态特性,这点与C++有很大不同(需要在父类方发上加virtual关键字),但用起来确实方便了许多. 最简单的继承多态 声明一个接口BaseIF,只包含一个方法声明 public interface BaseIF { void Access(); } 一个基类Base,基类实现了BaseIF接口,Access会调用Base类的public函数test()(实现类最好不要有自己的public函数,public函数应提到接口中,这里是为了说明问题方便) public cl…
延续 Java基础 项目实例--Bank项目4 实验要求 实验题目 5: 在银行项目中创建 Account 的两个子类:SavingAccount 和 CheckingAccount 实验目的: 继承.多态.方法的重写. 提 示: 创建 Account 类的两个子类:SavingAccount 和 CheckingAccount 子类 a. 修改 Account 类:将 balance 属性的访问方式改为 protected b. 创建 SavingAccount 类,该类继承 Account…
在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称.返回值类型.参数列表. 如果在新类中定义一个方法,其名称.返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法. 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 被覆盖的方法在子类中只能通过super调用. 注意:覆盖不会删除父类中的方法,而是对子类的实例隐藏,暂时不使用. 请看下面的例子: public class D…
封装继承多态这三个概念不是C++特有的,而是所有OOP具有的特性. 由于C++语言支持这三个特性,所以学习C++时不可避免的要理解这些概念. 而在大部分C++教材中这些概念是作为铺垫,接下来就花大部分篇幅讲语言机制如如何实现这些特性的. 其实以上三个概念是不是OOP编程语言具有的特性,而是现实世界本身所具有的规律,只是OOP提炼了这些特性而已. 而且技术面试时最喜欢问的就是虚函数,而要理解虚函数这三个概念一个都少不了. 下面来分别描述这三个概念 [封装] 以下偷懒引自百度百科的描述. 隐藏对象的…
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现 举例: public class Human { private int age; private String name; public int get…
1.属性 //属性的2种写法 public class person { private string _name; public string Name { get { return _name; } set { _name=value; } } public int Age { get; set; } }  2.索引器 //外部调用 person p=new person; sting str=p[] public class person { private string _name; p…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---重构代码,利用继承多态 1. 主界面截图如下: 2. 根据完成挡板和小球类的编写后,会发现挡板类和小球类代码中有非常类似的属性和方法,进一步思考,后续还需画砖块和子弹等图形,即要构建砖块和子弹类的同时还会有代码的重复,这样的现象是不好的程序编码,所以要重构代码.重构方法是:将挡板类和小球类的属性和方法提取成一个父类,挡板类和小球类都继承这一父类. 父类…
框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点是一种符合人们思考习惯的思想可以将复杂的事情简单化将程序员从执行者转换成了指挥者完成需求时: 先要去找具有所需的功能的对象来用. 如果该对象不存在,那么创建一个具有所需功能的对象. 这样简化开发并提高复用. 面向对象开发,设计,特征开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情.设计的…