精华内容
下载资源
问答
  • 对象的上转型对象有怎样的特点

    千次阅读 2019-12-24 14:46:49
    8.对象的上转型对象有怎样的特点? 答案:上转型对象不能操作子类新增的成员变量;不能使用子类新增的方法。上转型对象可以操作子类继承或者隐藏的成员变量,也可以使用子类继承的或者重写的方法。上转型对象操作...

    一、问答题
    1.子类可以有多个父类吗?
    答案:不可以
    2.java.lang包中的Object类是所有其他类的祖先类吗?
    答案:是
    3.如果子类和父类不在同一个包中,子类是否继承父类的友好成员? 答案:不继承
    4.子类怎样隐藏继承的成员变量?
    答案: 声明与父类同名的成员变量
    5.子类重写方法的规则是怎样的?重写方法的目的是什么?
    答案:子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法。
    6.父类的final方法可以被子类重写吗?
    答案:不可以
    7.什么类中可以有abstract方法?
    答案:abstract类
    8.对象的上转型对象有怎样的特点?
    答案:上转型对象不能操作子类新增的成员变量;不能使用子类新增的方法。上转型对象可以操作子类继承或者隐藏的成员变量,也可以使用子类继承的或者重写的方法。上转型对象操作子类继承或重写的方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个方法,则当对象的上转型对象调用这个方法时一定是调用了这个重写的方法。
    9.一个类的各个子类是怎样体现多态的?
    答案:通过重写
    10.面向抽象编程的目的和核心是什么?
    答案:目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。
    二、选择题
    1.下列哪个叙述是正确的?

    A. 子类继承父类的构造方法。

    B. abstract类的子类必须是非abstract类。

    C. 子类继承的方法只能操作子类继承和隐藏的成员变量。

    D. 子类重写或新增的方法也能直接操作被子类隐藏的成员变量。
    答案:C
    2.下列哪个叙述是正确的?

    A. final 类可以有子类。

    B. abstract类中只可以有abstract方法。

    C. abstract类中可以有非abstract方法,但该方法不可以用final修饰。

    D. 不可以同时用final和abstract修饰同一个方法。

    E. 允许使用static修饰abstract方法。
    答案:D
    3.下列程序中注释的哪两个代码(A,B,C,D)是错误的(无法通过编译)?
    class Father {
    private int money =12;
    float height;
    int seeMoney(){
    return money ; //A
    }
    }
    class Son extends Father {
    int height;
    int lookMoney() {
    int m = seeMoney(); //B
    return m;
    }
    }
    class E {
    public static void main(String args[]) {
    Son erzi = new Son();
    erzi.money = 300; //C
    erzi.height = 1.78F; //D
    }
    }
    答案:CD
    4.假设C是B的子类,B是A的子类,cat是C类的一个对象,bird是B类的一个对象,下列哪个叙述是错误的?

    A. cat instanceof B的值是true。

    B. bird instanceof A的值是true。

    C. cat instanceof A的值是true。

    D. bird instanceof C的值是true。
    答案:D
    5.下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?
    class A {
    static int m;
    static void f(){
    m = 20 ; //A
    }
    }
    class B extends A {
    void f() //B
    { m = 222 ; //C
    }
    }
    class E {
    public static void main(String args[]) {
    A.f(); // D
    }
    }
    答案:B
    6.下列代码中标注的(A,B,C,D)中,哪一个是错误的?
    abstract class Takecare {
    protected void speakHello() {} //A
    public abstract static void cry(); //B
    static int f(){ return 0 ;} //C
    abstract float g(); //D
    }
    答案:B
    7.下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?
    abstract class A {
    abstract float getFloat (); //A
    void f() //B
    { }
    }
    public class B extends A {
    private float m = 1.0f; //C
    private float getFloat () //D
    { return m;
    }
    }
    答案:D
    8.将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?
    A. public float getNum(){return 4.0f;}
    B. public void getNum(){ }
    C. public void getNum(double d){ }
    D. public double getNum(float d){return 4.0d;}
    class A {
    public float getNum() {
    return 3.0f;
    }
    }
    public class B extends A {
    【代码】
    }
    答案:B
    9.对于下列代码,下列哪个叙述是正确的?
    A. 程序提示编译错误(原因是A类没有不带参数的构造方法)
    B. 编译无错误,【代码】输出结果是0。
    C. 编译无错误,【代码】输出结果是1。
    D. 编译无错误,【代码】输出结果是2。
    class A {
    public int i=0;
    A(int m) {
    i = 1;
    }
    }
    public class B extends A {
    B(int m) {
    i = 2;
    }
    public static void main(String args[]){
    B b = new B(100);
    System.out.println(b.i); //【代码】
    }
    }
    答案:A
    三、阅读程序
    1.请说出E类中【代码1】,【代码2】的输出结果。
    class A {
    double f(double x,double y) {
    return x+y;
    }
    }
    class B extends A {
    double f(int x,int y) {
    return xy;
    }
    }
    public class E {
    public static void main(String args[]) {
    B b=new B();
    System.out.println(b.f(3,5)); //【代码1】
    System.out.println(b.f(3.0,5.0)); //【代码2】
    }
    }
    答案:1、15.0 2、8.0
    2.说出下列B类中【代码1】,【代码2】的输出结果。
    class A {
    public int getNumber(int a) {
    return a+1;
    }
    }
    class B extends A {
    public int getNumber (int a) {
    return a+100;
    }
    public static void main (String args[]) {
    A a =new A();
    System.out.println(a.getNumber(10)); //【代码1】
    a = new B();
    System.out.println(a.getNumber(10)); //【代码2】
    }
    }
    答案:1、11 2、11
    3.请说出E类中【代码1】~【代码4】的输出结果。
    class A {
    double f(double x,double y) {
    return x+y;
    }
    static int g(int n) {
    return n
    n;
    }
    }
    class B extends A {
    double f(double x,double y) {
    double m = super.f(x,y);
    return m+x*y;
    }
    static int g(int n) {
    int m = A.g(n);
    return m+n;
    }
    }
    public class E {
    public static void main(String args[]) {
    B b = new B();
    System.out.println(b.f(10.0,8.0)); //【代码1】
    System.out.println(b.g(3)); //【代码2】
    A a = new B();
    System.out.println(a.f(10.0,8.0)); //【代码3】
    System.out.println(a.g(3)); //【代码4】
    }
    }
    答案:1、98.0 2、12 3、98.0 4、9
    4.请说出E类中【代码1】~【代码3】的输出结果。
    class A {
    int m;
    int getM() {
    return m;
    }
    int seeM() {
    return m;
    }
    }
    class B extends A {
    int m ;
    int getM() {
    return m+100;
    }
    }
    public class E {
    public static void main(String args[]) {
    B b = new B();
    b.m = 20;
    System.out.println(b.getM()); //【代码1】
    A a = b;
    a.m = -100; // 上转型对象访问的是被隐藏的m
    System.out.println(a.getM()); //【代码2】上转型对象调用的一定是子类重写的getM()方法
    System.out.println(b.seeM()); //【代码3】子类继承的seeM()方法操作的m是被子类隐藏的m
    }
    }
    答案:1、120 2、120 3、-100
    四、编程题(参考例子13)
    设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
     编写抽象类Animal
    Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。
     编写模拟器类Simulator
    该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用Animal的子类重写的cry()方法播放具体动物的声音、调用子类重写的getAnimalName()方法显示动物种类的名称。
     编写Animal类的子类:Dog,Cat类
    编写主类Application(用户程序)
    在主类Application的main方法中至少包含如下代码:
    Simulator simulator = new Simulator();
    simulator.playSound(new Dog());
    simulator.playSound(new Cat());

    第六章课后习题

    一、问答题
    1.接口中能声明变量吗?
    答案:不能
    2.接口中能定义非抽象方法吗?
    答案:不能
    3.什么叫接口的回调?
    答案:接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。
    4.接口中的常量可以不指定初值吗?
    答案:不可以
    5.可以在接口中只声明常量,不声明抽象方法吗?
    答案:可以
    二、选择题
    1.下列哪个叙述是正确的
    A.一个类最多可以实现两个接口。
    B.如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法。
    C.如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法。
    D.允许接口中只有一个抽象方法。
    答案:A
    2.下列接口中标注的(A,B,C,D)中,哪两个是错误的?
    interface Takecare {
    protected void speakHello(); //A
    public abstract static void cry(); //B
    int f(); //C
    abstract float g(); //D
    }
    答案:AB
    3.将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误。
    A.public int f(){return 100+M;}
    B.int f(){return 100;}
    C.public double f(){return 2.6;}。
    D.public abstract int f();
    interface Com {
    int M = 200;
    int f();
    }
    class ImpCom implements Com {
    【代码】
    }
    答案:B

    三、阅读程序
    1.请说出E类中【代码1】,【代码2】的输出结果。
    interface A {
    double f(double x,double y);
    }
    class B implements A {
    public double f(double x,double y) {
    return x*y;
    }
    int g(int a,int b) {
    return a+b;
    }
    }
    public class E {
    public static void main(String args[]) {
    A a = new B();
    System.out.println(a.f(3,5)); //【代码1】
    B b = (B)a;
    System.out.println(b.g(3,5)); //【代码2】
    }
    }
    答案:1、15.0 2、8
    2.请说出E类中【代码1】,【代码2】的输出结果。
    interface Com {
    int add(int a,int b);
    }
    abstract class A {
    abstract int add(int a,int b);
    }
    class B extends A implements Com{
    public int add(int a,int b) {
    return a+b;
    }
    }
    public class E {
    public static void main(String args[]) {
    B b = new B();
    Com com = b;
    System.out.println(com.add(12,6)); //【代码1】
    A a = b;
    System.out.println(a.add(10,5)); //【代码2】
    }
    }
    答案:1、18 2、15
    四、编程题(参考例子6)
    该题目和第5章习题5的编程题类似,只不过这里要求使用接口而已。
    设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
     编写接口Animal
    Animal接口有2个抽象方法cry()和getAnimaName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。
     编写模拟器类Simulator
    该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音、调用重写的getAnimalName()方法显示动物种类的名称。
     编写实现Animal接口的Dog类和Cat类
    图6.14是Simulator、Animal、Dog、Cat的UML图。
     编写主类Application(用户程序)
    在主类Application的main方法中至少包含如下代码:
    Simulator simulator = new Simulator();
    simulator.playSound(new Dog());
    simulator.playSound(new Cat());

    展开全文
  • 上转型对象特点

    千次阅读 2018-06-18 18:19:40
    假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如: Animal a; a=new Tiger();... 这时,称对象a是对象b的上转型对象(好比说“老虎是动物”)。 ...

     假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如:

            Animal a;

            a=new Tiger();

            或

            Animal a;

            Tiger b=new Tiger();

            a=b;

            这时,称对象a是对象b的上转型对象(好比说“老虎是动物”)。

            对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能(上转型对象相当于子类对象的一个“简化”对象)。上转型对象具有如下特点:

    1)上转型对象不能操作子类新增的成员变量(失掉了这部分属性),不能调用子类新增的方法(失掉了一些行为)。

    2)上转型对象可以访问子类继承和隐藏的成员变量,也可以调用子类继承的方法或子类重写的方法。上转型对象操作子类继承的方法或子类重写的实例方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个实例方法后,当对象的上转型调用这个实例方法时一定是调用了子类重写的实例方法。

    注:(1)不要将父类创建的对象和子类对象的上转型对象混淆。

            (2)可以将对象的上转型对象强制转换得到一个子类对象,这时,该子类又具备了子类所有的属性和功能。

            (3)不可以将父类创建的对象的引用复值给子类声明的对象(不能说"人是美国人")。

            (4)如果子类重写了父类静态方法,那么子类对象的上转型对象不能调用子类的静态方法,只能调用父类的静态方法。

    exmaple:

    class A
    {
    void crySpeak(String s)
    {
    System.out.println(s);
    }
    }


    class B extends  A
    {
    void computer(int a,int b)
    {
    int c=a*b;
    System.out.println(c);
    }
    void crySpeak(String s)
    {
    System.out.println("***"+s+"***");
    }
    }


    public class Example1 {
    public static void main(String[] args) {
    A a=new B();
    a.crySpeak("I love this game");
    B b=(B)a;
    b.computer(10,10);
    }
    }

     运行结果:***I love this game***

    展开全文
  • 5.7 对象的上转型对象

    2019-07-17 23:02:19
    假如A类是B类的父类(~在这里是省略意思) ~B extends A~ 当用子类创建一个对象,并把这个对象的引用放到父类的对象中 ...这个时候,称对象a是对象b的上转型对象(老虎是哺乳动物) 注意: 1.对象的转型...

    假如A类是B类的父类(~在这里是省略意思)

    ~B extends A~

    当用子类创建一个对象,并把这个对象的引用放到父类的对象中

    A a;       //A是父类
    a=new B();        //把子类B对象b的引用放在父类A的对象a中
    或者
    A a;
    B b=new B();
    a=b;

    这个时候,称对象a是对象b的上转型对象(老虎是哺乳动物)

    注意:  

    1.对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能

    2上转型对象的特点:

    • 上转型对象(如上面的a)不能操作子类新增的成员变量(失掉了这部分的属性),不能调用子类新增的方法(失掉了一些功能)
    • 上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的方法(如果子类重写了父类的某个方法,当对象的上转型对象调用这个方法一定是调用了子类重写的方法)
    • 可以将对象的上转型对象强制转换到一个子类对象,这时,该子类对象又具备了子类的所有属性和功
    如Anthropoid是父类,People是子类,在主类中
    People people=new People();    //子类声明对象people
    Anthropoid monkey=people;     //把这个对象的引用放到父类对象中,此时monkey就是一个上转型对象
    People zhang=(People)monkey;  //把上转型对象强制转换为子类的对象
    • 不可以将父类创建的对象的引用赋给子类声明的对象(不能说“哺乳动物是老虎”)
    展开全文
  • Java上转型对象

    2019-11-09 10:50:05
    如果A类继承自B类,即B为A的父类,那么当使用A的构造方法实例化一个B的对象时,所产生的b对象即为上转型对象。 例: B b = new A(); 所谓转,即范围小的类(子类)转为范围大的类( ...

    定义

    如果A类继承自B类,即B为A的父类,那么当使用A的构造方法实例化一个B的对象时,所产生的b对象即为上转型对象。

    例:

    class B {
    }
    public class A extends B {	
     public static void main(String[] args) {
      B b = new A();
     }	
    }

    特点

    所谓上转,即范围小的类(子类)转为范围大的类(父类),所实例化的对象类型依然是父类,不过使用的是①父类构造方法 + ②子类构造方法所实例化的。此对象具有父类的属性与方法(非private声明的)以及子类重写(override)后的属性与方法(访问权限修饰符级别不能高于父类的),显然,此对象不能调用子类新增的方法。

    例:

    public class A extends B{
      A(){
      System.out.println("子类构造方法");
     }
     public void Aprint() {
      System.out.println("子类新增方法");
     }
     public void Bprint() {
      System.out.println("子类覆盖父类方法");
     }
     
     public static void main(String[] args) {
      B b = new A();
      b.Bprint();//编译正确
      b.Aprint();//编译错误
     }
    }
    class B {
     B(){
      s = 1;
      System.out.println("父类构造方法");
     }
     public void Bprint() {
      System.out.println("子类新增方法");
     }
    }

    输出结果:

    父类构造方法
    子类构造方法
    子类覆盖父类方法
    

    应用

    public class Person {
     public void mine() {
       System.out.println("我是一个人");
     }
     public static void main(String[] args) {
      Person per1 = new Chinese();
      Person per2 = new Korean();
      Person per3 = new Thai();
      Person per4 = new American();
      per1.mine();
      per2.mine();
      per3.mine();
      per4.mine();
     }
    } 
    class Chinese extends Person {
     public void mine() {
      System.out.println("我是中国人");
     }
    }
    class Korean extends Person {
     public void mine() {
      System.out.println("我是韩国人");
     }
    }
    class Thai extends Person {
     public void mine() {
      System.out.println("我是泰国人");
     }
    }
    class American extends Person {
     public void mine() {
      System.out.println("我是美国人");
     }
    }

    输出结果:

    我是中国人
    我是韩国人
    我是泰国人
    我是美国人
    

    介绍:虚拟方法调用(多态情况下) 子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的
    在这里插入图片描述
    前提: Person类中定义了mine()方法,各个子类重写了mine()。
    执行: 多态的情况下,调用对象的mine()方法, 实际执行的是子类重写的方法。

    总结

    由上述运行结果可得,上转型对象不能调用子类新增的方法,这样说明上转型对象是子类对象的简化,它不关心子类的新增功能,只关心子类的继承和重写功能。在某些时候,这种做法使得程序很清晰,降低耦合度,防止错误调用方法导致内存泄露等其它问题,具有非常大的意义,尤其在继承接口这种实现方法,我们只需具体实现这个接口里所有方法,而无须新定义多余的方法,这样在调用接口的时候就可以大大降低不安全的访问(需要什么,就只能访问什么)。
    此外,这样使用父类引用指向子类对象的方式,十分契合多态的思想,一个父类声明多个方法(可能方法中什么都不写)后使用上转型对象实例化,即可实现这个方法的多种实现形式。

    如有不正,欢迎批评指出

    展开全文
  • 什么是上转型对象及其基本特征

    千次阅读 2020-12-15 18:44:38
    5.12.什么是上转型对象及其基本特征? 上转型对象---子类对象赋值给父类变量。 例如: package com.wangxing.test1; //父类 public class Person { public void testPerson() { System.out.println("父类...
  • 对象的向上转型对象

    千次阅读 2019-03-17 17:00:31
    从人的思维方式来看,说“老虎时动物”属于上溯的思维方式,从而衍生出Java中的向上转型对象。 向上转型对象的声明 Animal a = new Tiger(); //或者 Animal a; Tiger b = new Tiger(); a = b; 这时,称对象a是...
  • 将一个父类的引用赋值给一个子类对象,这个子类对象就叫做对象的上转型对象。 假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,例如: Animal a; a=new Tiger(); 或 ...
  • 关键字final的使用 final关键字可以修饰 类、成员变量、方法和方法中的局部变量 ; 一、当 final 修饰类时,则这个类就不能被继承,即这个类没有子类; 一般格式如下: 则类 A 是不能被其他...对象的上转型对象 ...
  • 对象的上转型对象

    2017-07-12 17:40:20
    1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a; a = new B(); ...则称A类对象a是子类B对象b的上转型对象。...上转型对象具有以下特点
  • Java5-3 对象的上转型对象 1.上转型对象: 如果B类是A类的子类或间接子类,当用B类创建对象...上转型对象具有以下特点上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即为较子类B失去一些属性和
  • Java中的上转型对象

    千次阅读 2020-03-27 11:37:20
    java中的上转型变量 引言: 当学习到java的多态时,提到了上转型变量的概念,由于java中的多态十分重要,在本文中将介绍本人在学习过程中的疑惑和寻找到的解答并进行总结。 1.定义 如果B类是A类的子类或间接子类,...
  • java上转型特点

    2020-06-06 14:33:34
    上转型对象:子类创建一个对象,并且把该对象的引用放到父类声明的变量中。 特点: (1)上转型对象不能操作子类新增的成员变量和成员方法。转型不能直接操作子类中和父类同名的成员变量,需要借助于get和set方法...
  • 上转型对象

    千次阅读 2015-05-04 13:45:43
    假设A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中,例如:  A a;  a=new B(); 或  A a;...对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些
  • 1、 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如:A a; a = new B(); 或者 A a;...上转型对象具有以下特点上转型对象不能操作子类新增加的成员
  • JAVA 上转型对象

    2017-01-10 13:29:19
    JAVA 上转型对象  假设,B是A的子类或间接子类,当用子类B创建一个对象,并把这个对象的引用放到A类声明的对象中时,比如:  A a; ... 那么就称对象a是子类对象b的上转型对象...上转型对象具有如下特点
  • Java 上转型对象

    2019-10-14 21:56:56
    上转型对象具有如下特点: 上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即上转型对象较子类B失去一些属性和功能,这些属性和功能是子类新增的。 上转型对象可以操作子类继承或隐藏的成员...
  • 世界万物无非就是吃喝玩乐繁衍生息,传宗接代是重中之重,这样长久以来就构成了我们地球的生态系统,java也是这样,只不过这里面... 而下面我要说的就是和这个模式很相似的上转型对象。 我们已经假设了人类是...
  • java上转型对象的好处

    千次阅读 2018-06-18 18:17:22
    向上转型是子类对象当成父类对象来使用,也就可以这样理解,父类引用指向子类对象。那么比如有一个方法m,它传的参数是父类的类型,m(father f),执行的父类中已有的某个方法而你实际传的是它的子类 son,如果子类中...
  • 若A类是B类的父类,当用子类(B类)创建一个对象b,并把此对象的引用赋值给父类(A类)的对象a中时,称对象a是对象b的上转型对象。 例如: A a = new A(); a = new B(); 性质: ●上转型对象可以访问子类继承的成员...
  • 实际,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。 interface People { void peopleList(); } class Student implements ...
  • 本篇博客着重说明方法的参数传递机制和 对象上转型,作为前几篇博客的续貂之作,当然面向对象我还没有回顾完呢。言归正传。   一、方法的参数传递机制 1.1说明:java里的方法不能单独存在,调用方法必须使用类...
  • 由子类转换成为父类,在继承图是向上移动的,称之为向上转型特点: 1、首先是安全的,但是可能会导致子类的方法的丢失。 2、父类的引用指向子类的对象 与之相反的是向下转型 特点: 1、不安全 2、子类的...
  • 5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的下文,用client的getHome()函数调用Home接口...
  • 上转型对象具有如下特点上转型对象不能操作子类新增的成员变量(失掉了这部分属性),不能调用子类新增的方法(失掉了一部分行为)。 上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,002
精华内容 10,400
关键字:

对象的上转型对象特点