Music mu=new Music();
Musc m=mu;//地址一样
继承:Java只支持单继承,不支持多继承。
Java支持多层(重)继承(继承体系)。
如果类之间存在着:is a 的关系,就可以考虑使用继承。
不要为了继承部分功能,而去使用继承。
final是一个关键字,可以用于修饰类,成员变量,成员方法。
特点:
1. 它修饰的类不能被继承。
2. 它修饰的成员变量是一个常量。
3. 它修饰的成员方法是不能被子类重写的
不同的包,基类一定是public,否则子类不能被继承
在基类中定义的private成员在任何情况下不会被继承
protected限制包以外的类访问,可以继承:没有访问修饰符的成员限制在同一个包内可以访问,不能继承
public>protected>private
构造方法 :如果没有显示地调用一个基类的构造方法 ,就会隐式调用父类构造方法
//子类对象构造时,会默认调用父类无参构造函数 public Music(){ //super();//默认调用父类无参构造 //System.out.println("子类"); } //如何显式调用父类构造函数?? public Music(String name,String path,String time,String singer){ //调用父类构造(初始化父类成员) super(name,path,time); this.singer=singer;//初始化本类成员 }
方法重写:在两个存在继承关系的类中,如果子类中的一个方法与父类中的方法有相同的方法名并具有相同数量与类型的参数列表,那么在这个子类中新定义的方法将替代父类中定义好的方法,这就是子类中的方法重写,如:
父类:public void play() { System.out.println("playing!!!"); } 子类:@Override public void play() { System.out.println("初始化播放器"); System.out.println("载入电影"); System.out.println("加载字幕"); super.play(); }