一、继承

抽象类/方法:abstract关键字修饰

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;
	}
}
此类数组赋值时,方法中向数组传参的值为父类或子类的实例化对象