JAVA复习Day3

一.算法题部分收获


<1>关于String和int互相转换方法:

1.int转String:

int a=13;
String res=String.valueOf(a);

2.String转int:

String str="abcde";
int a=Integer.valueOf(str).intValue();

<2>判断两个字符串String是否相等:

不能用==判断,得用equals方法判断

String a1="aaa";
String a2="aaa";
if(a1==a2)//错误写法,字符串无法用==判断相等
if(a1.equals(a2))//正确写法

二.JAVA部分收获

1.继承中的方法重写override

子类重写覆盖父类的同名方法:<1>子类方法与父类同名,参数列表相同 <2>子类方法返回值与父类方法相同,或为父类方法的子类。<3>子类方法不能缩小父类方法的访问权限。

2.JAVA第三大特性:多态

<1>多态的两种体现方式:

1.方法的多态:重载体现在多态

2.对象的多态(多态的核心):

(1)一个对象的编译类型和运行类型可以不一致

(2)编译类型在定义对象时就确定了,无法改变,运行类型是可以改变的。

(3) 编译类型看=左边,运行类型看=右边。

Animal animal = new Dog(); //animal编译类型是Animal,运行类型是Dog
animal = new Cat();//运行类型变为Cat

3.多态的细节和注意事项

(1)多态的前提:存在继承关系

(2)多态的向上转型:父类指向子类对象,相当于子类向上转型。运行类型是子类,编译类型是父类。特别重要:可以调用父类所有方法,不能调用子类特有方法。因为在编译阶段决定能调用哪些成员,所以编译类型决定了能调用哪些方法成员。(但依旧要遵守访问权限)

(3) 编译类型看=左边,运行类型看=右边。

(4)多态的向下转型:语法:子类类型 引用名=(子类类型) 父类引用;

Animal animal =new Cat(); //Cat有一个特有方法catchFish();
animal.catchFish();//错误,无法访问Cat特有方法
Cat cat=(Cat) animal;//向下转型
cat.catchFish();//成功

<1>向下转型要求父类引用必须指向当前子类对象,即animal指向Cat;

Animal animal =new Cat(); //Cat有一个特有方法catchFish();
animal.catchFish();//错误,无法访问Cat特有方法
Dog dog=(Dog) animal;//向下转型失败,因为animal没有指向Dog

(5)属性没有重写之说,属性看编译类型

Animal animal =new Cat(); //Cat有一个特有方法catchFish();
animal.name;//假设Cat和Animal都有name,此处调用Animal类的name,看编译类型

 (6)A instanceof B方法,判断A的运行内存是否和B是同一个类,或为B的子类

4.JAVA的动态绑定机制

<1>当调用对象方法时,该方法会和该对象的运行类型绑定。

<2>当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。

5.多态数组

数组的类型时父类,数组里面的对象包含子类对象。遵循上述所有原则

Person[] person =new person[5];
person[0]=Student(name,age);
person[1]=Person(name,age);
//...

6.多态参数:

形参是父类类型,实参可以是子类类型

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茉莉魔力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值