类的继承
1.类的继承的格式:
public
class 子类名 extends 父类名{}
2.继承到了什么:
子类继承了父类所有的方法和属性,调用的时候需要分情况
说明。
1.子类和父类在同一个包下:
默认的、受保护的、公有的属性和方法能在子类中和子类的
对象直接调用。
2.子类和父类不在同一个包下:
公有的属性和方法可以在类中和子类的对象直接调用。
受保护的属性和方法就只能在类中直接调用。
3.方法的重写
根据需要,子类当然应有自己特有的方法。当子类中某个方法的
定义与父类中的完全相同时,这种情况就叫做方法的重写。(温馨提
示:方法重写时子类方法的访问修饰符必须要大于或者等于父类方法
的访问修饰符)当需要调用父类中被重写的方法时要用super
关键字
示例代码:
父类中:
public void study(){
System.out.println(getName+"要好好学习");
}
public void study(){
System.out.println(getName+"要好好学习");
}
子类中:
public void study(){
super.study();//调用父类study方法
System.out.println(getName+"要独立思考独立学
习");
}
public void study(){
super.study();//调用父类study方法
System.out.println(getName+"要独立思考独立学
习");
}
4.自动转型
自动转型:指的就是子类对象类型会自动转型为父类对象类型
如UNstudent是Student的子类
Student uns=new UNStudent();中的uns会自动的转型为父类类型,
此时uns只能调用父类中的方法或在子类中重写的父类方法,子类中
特有的方法不能被其调用。
5.多态
多态指:方法
重载,类的继承,自动转型等的集体表现,
当相同类型的对象调用相同的方法时得到的结果可能不同。
示例代码:
public class Author extends Man{
public void Live(){
System.out.println(getName+"靠写作为生");
}
public class Singer extends Man{
public void Live(){
System.out.println(getName+"靠唱歌为生");
}
public class Author extends Man{
public void Live(){
System.out.println(getName+"靠写作为生");
}
public class Singer extends Man{
public void Live(){
System.out.println(getName+"靠唱歌为生");
}
分别实例化一个对象(类型相同):
Man man1=new Author();
Man man2=new Singer();
Man man1=new Author();
Man man2=new Singer();
调用相同的方法:
man1.Live();--调用的是Author中的Live方法
man2.Live();--调用的是Singer中的Live方法