多态(instanceof)】的更多相关文章

/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象类可以有方法和属性 * 4.抽象类不能被实例化 * 5.抽象类不能声明为final * 6.抽象类可以有构造方法[不代表实例化对象] */ public class Main { public static void main(String[] args) { Goddess m1 = new Go…
1 public static void method(Animal a) {//类型判断 2 a.eat(); 3 if(a instanceof Cat) {//instanceof:用于判断对象的具体类型.Cat可以是类可以是接口,只能用于引用数据类型判断 4 Cat c = (Cat)a;//通常在向下转型前用于健壮性的判断. 5 c.catchMouse(); 6 }else if (a instanceof Dog) { 7 Dog d = (Dog)a; 8 d.lookHome(…
1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合并排序 Arrays.binarySearch(数组,目标值) 二分法查找 在有序数组中, 查找目标值的位置 找不到,返回辅负数无意义值 Arrays.copy(数组,长度) 把数组复制成指定长度的新数组 不超出原数组长度,相当于截取 超出原数组长度, 超出范围赋值默认值 Arrays.fill(数…
java_study笔记 前言: 所有笔记均总结自狂神的java基础视频 https://www.bilibili.com/video/BV12J41137hu?p=1 idea小技巧 psvm+回车直接给一个main方法 ctrl+d复制当前行到下一行 sout+回车直接输出 输入的时候 new Scanner(System.in); 然后alt+回车 100.for 直接生成一个for循环 数组名.for自动生成一个for-each循环 alt+insert生成构造器 同样也可以生成get/…
/* 题目: (多态,instanceof)有如下代码 class Animal { private String name; // 1 } class Dog extends Animal { //2 } class Cat extends Animal { //3 } public class TestAnimal { public static void main(String args[]){ Animal[] as = new Animal[]{ new Dog("Pluto"…
JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 学习是不能停止的 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第三个特征,何谓多态? 定义 某一类事物的多种存在方式 比如 动物中的猫狗,人类中的男人,女人 我们可以把多态理解为事物存在的多种体现形态 当我们new一个猫类的时候,和new 一个动物,其实是一样的,多种形态变现 所以我们可以分这几部分分析 多态的体现 多态的前提 3.多态的好处 4.多态的应用 我…
package cn.pen; /*final 是一个java的关键字,用于修饰局部变量.属性.方法.类,表示最终的意思. final修饰类表示最终类,无法被继承.public final class Penguin{} final修饰符方法,方法就不能被重写.所以final修饰的是最终子类或最终类 final 修饰属性,经常和static搭配使用,形成静态常量.静态常量不能被改变 修饰变量final 修饰基本数据类型 ,表示a中的内容(值)不能被改变final int a = 10; fina…
多态调用的三种格式 * A:多态的定义格式: * 就是父类的引用变量指向子类对象 父类类型 变量名 = new 子类类型(); 变量名.方法名(); * B: 普通类多态定义的格式 父类 变量名 = new 子类(); * C: 抽象类多态定义格式 抽象类 变量名 = new 抽象类子类(); ; * D: 接口多态定义的格式 接口 变量名 = new 接口实现类(); 成员方法:编译看左边 运行看右边(父类有子类没有 调用父类 父类 有 子类有 调子类) f.show();成员变量:编译运行都…
面向对象的三大特征: 1.封装   (将一类属性封装起来,并提供set()和get()方法给其他对象设置和获取值.或者是将一个运算方法封装起来,其他对象需要此种做运算时,给此对象调用) 2.继承   (继承关系通过extends关键字体现) 3.多态   (父类的引用指向子类的对象,或者接口的引用类型变量指向接口实现类的对象) 1.多态的含义 父类的引用指向子类的对象,或者接口的引用类型变量指向接口实现类的对象 2.多态的应用 1.多态应用于形式参数的时候,可以接收更多类型的数据.    2.多…
1.包 三级命名:公司的尾缀(com).公司名字(baidu).业务(Sale) java.lang:默认包:String.Math,Object,System java.util:工具包 java.io:输入输出包 java.net:网络开发包 java.awt:图形界面开发包 java.swing:也是图形界面开发包 2.访问控制 private:私有的:只能在自己的类中使用 default: 默认的:同包中可以使用.当子类继承父类,实例化子类后,跨包不可以使用. protected:保护的…
多态的好处: 可替换性:多态对已经存在的代码具有可替换性 可扩展性:多态对待吗具有可扩展性,增加新的子类不影响已经存在类的多态性,继承性,以及其他特征的运行和操作.实际上新家子类更容易获得多态功能 接口性:多态是超类通过方法签名,向子类提供一个共同接口,由子类来完善或者覆盖他的视线 灵活性:他在应用中体现了灵活多样的操作,提高了使用的效率 简化行:多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作室 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可,大大的…
多态 对象有多种状态.作用:提高程序的可扩展性. 一个对象具备多种状态的能力,这个程序是可扩展的. 前提: 必须有层级关系 继承 实现 继承:子类和父类的关系,一个父类可以有多个子类,说明父类的引用有多种形态 作用类型: 形参.返回值.创建对象 可以将子类的方法重载,也可以直接将方法的形式参数类型改成父类的对象,子类对象向上转型为父类的引用,可以把它理解为类型隐式转换,由低到高. 在多态情况下,无法直接获得子类独有的成员,需要进行强制转换,向下转换为子类的类型,由高到低: PM pm=(PM)e…
题目:*(封装.继承)设计如下的继承树: Accout 表示银行账户,id 属性表示账户id,balance 表示账户余额,password 表示账户密码: SavingAccount 表示储蓄账户,interestRate 表示存款利率: CreditAccount 表示信用账户,creditLine 表示信用额度. 完成下列任务: 1) 所有属性都应设为私有,根据需要增加构造方法和get/set 方法. 2) *修改setPassword 方法,要求: setPassword 判断新密码长度…
instanceof:通常在向下转型前用于健壮性的判断,判断是符合哪一个子类对象 package Polymorphic; public class TestPolymorphic { public static void main(String[] args) { cat c = new cat(); cat c2 = new cat(); c.eat();// Animal d= new dog();// d.eat();// //这里就是弊端,不能用子类引用去调用子类特有的方法// //…
多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 . C++使用runtime-type information(RTTI),Java 使用 instanceof 操作符. instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型.请看下面的代码: public final class Demo{ public static void main(String[] args) { // 引用 People 类的实例 People…
接口是一组行为的规范.定义.接口是面向对象编程体系中的思想精髓之一,使用接口可以让我们的程序更加利于变化. 接口的格式: interface 接口名称{ 全局变量: 抽象方法: } 接口中的成员修饰符是固定的,成员常量用public static  final修饰:成员函数用public  abstract修饰,接口的出现将“多继承”通过多实现来体现.接口的使用也有一定的规则:接口可以继承多个接口,一个类中可以实现接口和多接口,抽象类实现接口可以不实现方法:接口中的所有实现方法的访问权限都是pu…
这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 抽象 一种专门用来做父类,被继承的. (模板) 格式: abstract class 抽象类名{ 属性; 普通方法; 访问权限 abstract 返回值类型 方法名称([形参]);//抽象方法,无方法体 } 抽象类中, 不写访问权限的时候, 默认是default, 不同于接口中的默认(接口方法默认被public abstract 修饰), 子类在继承抽象类时候…
封装是实现面向对象程序设计的第一步,封装就是将数据与函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型. 在传统的面向对象语言中有访问修饰符,如Private:只有类本身能存取.Protected:类和派生类可以存取.Public:完全存取. 那么在没有这些访问修饰符的javascript中是怎么实现封装的呢,请看如下代码: var myObject = (function () { var __name = 'peak'; //私有变量 return{ getNam…
1.Java中的多态 多态是指对象的多种形态,主要包括这两种: 1.1引用多态 a.父类的引用可以指向本类的对象b.父类的引用可以指向子类的对象举个例子:父类Anmail,子类Dog,可以使用父类Anmail来创建父类或者子类的对象,但是子类无法创建父类的对象 //父类 public class Animal { } //子类 public class Dog extends Animal { } //测试类,创建子类对象 public class testDog { public static…
instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个例子: String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Obj…
目录 第八章 多态第十四章 类型信息第十二章 通过异常处理错误第十三章 字符串 第八章 多态 1. 前期绑定 & 后期绑定 绑定是指将方法调用同一个方法主体关联起来的这么一个过程.如果在程序执行前进行绑定,就称为前期绑定.(C中所有的方法调用都是前期绑定) 后期绑定就是指在运行时根据对象的类型进行绑定.后期绑定也叫动态绑定/运行时绑定. 一种语言要想实现后期绑定,就必须具有某种机制,以便于在运行时能判断对象的类型,从而调用恰当的方法.不同的语言有不同的实现机制,不管怎么样都必须在对象中安置某种类…
继承 js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属性),同时可扩展自己的成员,下面介绍几种js中实现继承的方式: 1,对象模仿:通过动态的改变 this 指针的指向,实现对父类成员的重复定义,如下: function ClassA(paramColor) { this.color = paramColor; this.sayColor = function() { alert(this.color); } } function ClassB(paramColor,…
instanceof 针对实例 isAssignableFrom针对class对象 isAssignableFrom   是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口.   通常调用格式是 Class1.isAssignableFrom(Class2) 调用者和参数都是   Java.lang.Class   类型.           而   instanceof   是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例.       格式是:…
课后作业一:接口多态:使用接口代替抽象基类 1.源代码: package zoo4; import java.util.Vector; public class Zoo2 { public static void main(String args[]) { Feeder f = new Feeder("小李"); Vector<Animal> ans = new Vector<Animal>();//可随时向其中加入或移除对象 //饲养员小李喂养一只狮子 ans…
类的一大应用就是多态.多态是一个面向对象编程的高级术语----“一个东西可编程很多不同的东西,但不是任何东西”.[引自coffeescript深入浅出] class Shape constructor: (@width) -> computeArea: -> throw new Error 'I am an abstract class!' class Square extends Shape computeArea: -> Math.pow @width, 2 class Circle…
1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接收自己的子类对象.2,多态的前提 必须是类与类之间有关系.要么继承,要么实现. 通常还有一个前提:存在覆盖. 3,多态的好处 多态的出现大大的提高程序的扩展性. 4,多态的弊端: 虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员. 5,多态的应用 6,多态的出现代码中的特点(多态使用的注意事项) /* java中的多态 */ abstract class Animal { abstract void eat(); } c…
继承:  面向对象的三大特征之一:    是类和类之间的一种拓展关系,是一种从一般到特殊的关系;    格式: sub   extends Super,  我们把sub称为子类或者拓展类, 把super称为父类或者基类(超类)   泛化: 把子类中的共性抽取到父类的过程; 特化: 子类在父类的基础之上,拓展自己特有的状态和特征;    Object: 是所有类的直接父类后间接父类;      class  Student{} 等价于  class  Student extends Object{…
第三章 多态 polymorphism 多态 instance 例子override 重载 constructor 构造器ClassCastException 类型转换异常upcasting 上抛 downcasting 向下转换abstract 抽象 1.多态 是具有表现多种形态的能力的特征同一个实现接口,使用不同的实例而执行不同的操作 2.子类向父类的转型Dog dog=new Dog();dog.eat();Pet pet=new Dog();pet.eat();//Dog类继承自Pet类…
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基于某个父类的扩展,制定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增加原来父类所不具备的属性和方法,或者直接重写父类中的某些方法 关键字 >>在java中使用extends关键字来标识两个类的继承关系 重写与重构 >>继承不只是扩展父类的功能,还可以重写父类的成员方法.重写…