java继承与封装学习
一、继承
抽象类/方法:abstract关键字修饰
简单理解下:abstract关键字修饰的类/方法,只能被 继承、覆写/覆写 后才能实例
上转型对象
父类 名称 = new 子类()
equals和==的区别
双等号比较的其实是地址值
在编译String s1=“song”的时候其实是jvm在常量池中创建了一个内容为”song”的地址值,然后让s1去指向”song”,而不是把”song”直接赋值给s1;
在编译String s2=“song”的时候常量池中已经有了”song”的地址值,所以让s2直接指向常量池中的”song”,这样s1和s2的地址值都是常量池中”song”的地址值,所以通过双等号的运算结果是true。
equals比较的是内容是否相同
然而在第二种情况下执行String s2=new String(“song”)的时候,要记住每new一次就会出现一个新的对象,所以这种情况是直接在堆内存中开辟了一块新的空间去储存”song”,所以此时s1和s2的地址值是不一样的,自然==的结果就为false。
二、private关键字
父类被子类继承后,其private修饰的属性,只能通过父类的公有方法赋值,也就是说:private修饰属性在构造方法时不必直接赋值,可以在子类继承后通过通过public方法进项赋值
三、’类’ 型的数组
public class Team {
// 每次调用表示组队增加一个成员
Role [] mber = new Role[6];
int Mber =0;//角色上限为6人
int sumAttack;
public void addMember(Role role) {
if(Mber<=6) {
mber[Mber] = role;
Mber++;
}
else {
System.out.println("组队人数超过上限");
}
}
public int attackSum() {
for(int j=0;j<Mber;j++) {
sumAttack += mber[j].attack();
}
return sumAttack;
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kanyun's Blog!
评论