Java4Android基础学习之对象的转型

  对象的转型可分为向上转型和向下转型

1、向上转型

  1)将子类的对象赋值给父类的引用

  

  2)一个引用能够调用哪些变量和函数,取决于这个引用的类型,如:

//父类
class father{
    String name;
    int age;
}
//子类
class son extends father{
   String address;
}

如果定义一个son类的p,则p只能调用address,因为p是son类的,而son类中只有address。

  3)一个引用调用的是哪个方法,取决与这个引用所指向的对,如:

class test{
    son p = new son();
    father = p;
   //或者
   //father p = new son();
}

这个引用p只能调用son中的方法,因为p指向的是son这个对象。

2、向下转型

  1)将父类的对象复制给子类的引用,先把一个student对象向上转型为person,然后在将转型后的对象强制转换问哦Student类;

  

  2)

时间: 2024-12-15 01:56:57

Java4Android基础学习之对象的转型的相关文章

java基础学习之对象转型

对象转型(casting): 1)一个基类的引用类型变量可以指向其子类的对象 2)一个基类的引用不可以访问其子类对象新增加的成员(属性和方法) 3)可以使用引用变量instanceof类名,来判断该引用型变量所指向的对象是否属于该类或该类的子类 4)子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting) package javastudy.summary; /** * 父类Animal * @author gacl * */ class

Hibernate基础学习(四)—对象-关系映射(上)

一.映射对象标识符      Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录.Hibernate使用对象标识符(OID)来建立内存中的对象和数据库表中的记录的对应关系,对象的OID和数据库表的主键对应,为了保证OID的唯一性和不可变性,应该让Hibernate,而不是应用程序来为OID赋值.     Hibernate推荐在数据表中使用代理主键,即不具备业务含义的字段.代理主键通常为整型,因为整型比字符串要节省更多数据库空间.     在

java基础部分----4.对象的转型

面向对象的三个特征:封装.继承.多态 本部分是面向对象的多态性的体现 1.对象的向上转型 向上转型----将子类的对象赋值给父类的引用: Student s = new Student(); Person  p = s; 或者也可以写成 Person p = new Student(); 一个引用能够调用哪些成员(变量和函数),取决于这个应用的数据类型 一个引用调用的是哪一个方法取决于这个引用所指向的对象(调用的都是子类的成员变量和方法) 2.对象的向下转型 向下转型----将父类的对象赋值给子

Objective-C基础学习笔记——对象初始化

obj中创建新对象有两种方式:[classname new]和[[classname alloc] init].两种方法等价,Cocoa惯例是使用alloc和init. 1.分配对象: allocation是一个新对象诞生过程,从OS获得一块内存并指定为存放对象的实例变量的位置.同时alloc方法还将这块内存区域全部初始化为0.BOOL初始化为NO,int初始化为0,float初始化为0.0,指针初始化为nil. 然后init初始化之后才能使用,C++和Java中使用构造函数在单次操作中执行对象

SwiftTour基础学习(七)对象和类

使用 class 和类名来创建一个类.类中属性的声明和常量.变量声明一样,唯一的区别就是它们的上下文是类.同样,方法和函数声明也一样. class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides) sides." } } 要创建一个类的实例,在类名后面加上括号.使用点语法来访问实例的属性和方法. var shape = S

Java4Android基础学习之包与访问权限

1.包 1)包:将类打包,同时限定了访问权限 2)包的创建,package + 包名  (包名一般由域名 + 具体名)如: package com.baidu; public class person { } 此段代码就实现了将person打包到com/baidu中  , 其中报名是域名  + 具体 名:   这里这个类的全名为  com.baidu.person. 3)包的导入,使用import + 包名.类名 进行导入,如: import pack.person; public class

Java4Android基础学习之面向对象应用

其实这里说的应用只是利用前面学过的知识综合起来,模拟一个非常简单的项目——打印机. 1.先是做一个打印机打印, public class father { void turn_on(){ System.out.println("turn on"); } void turn_off(){ System.out.println("turn off"); } void print(String s){ System.out.println("print &quo

Java4Android基础学习之复写(override)

1.复写(override) 1)存在与父类和子类之中: 2)父类和子类中各有一个函数,这两个函数名字,返回值类型,参数列表,完全一样,这就称之为这两个函数之间的关系为复写(override);如: //父类 class father{ void function(){ System.out.println("父类的函数"); } } //子类 class son extends father{ void function(){ System.out.println("子类的

Java4Android基础学习之抽象类与抽象函数

1.抽象类与抽象函数 1)抽象类的定义 ,在类前加关键字abstract,如: abstract class test{ } 2)抽象函数的定义,在函数前加关键字abstract,如: abstract class test{ abstract void functoin(); } 2.抽象函数与抽象类的特点 1)抽象函数只有函数定义没有函数体,如上面那段代码,只有 function 的定义,但是并没有内容: 2)如果抽象类中有一个或多个抽象函数,那么这个类必须定义成抽象类: 3)抽象类天生就是