Java之继承
继承的概念
1.继承:public class 子类 extends 父类{
}(继承了成员属性和成员方法,但是私有的成员属性不能在子类中使用)
2.继承的好处:提高了代码的复用性,提高了代码的编写效率,使得类与类之间产生了关系,为多态奠定了前提。
3.注意:子类之能继承一个父类,
但父类可以有多个子类。
子类继承父类,父类再可以继承父类,子类与父类是一个相对的概念。
所有类的父类为object,object包含多种成员属性和成员方法。
4.子类父类的特点。
成员属性:①子类继承父类,对同样的属性和方法,优先使用子类自己的属性,通过super来调用父类成员属性。②子类和父类的成员属性名不一样时,可以同时使用(
成员方法:①当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。
5.为什么子类可以和父类中的方法名一样?
首先,因为子类和父类的方法不在同一个类中,所以不是方法的重载;同时发生在,子类继承父类中,从返回值类型、方法名、参数列表一致,则称为方法的重写。
并且子类的修饰符权限大于等于父类的修饰符权限。public公共的》private私有的。
方法的重载和方法的重写可以同时存在。
修饰符权限,不写,有一个默认权限,小于public、
子类和抽象类的区别:
①底层子类都具有具体的方法体
②抽象类一定是父类,因为只有子类才能创建对象,从事具体的方法和动作。
③抽象类的存在,是为了被继承。
④抽象类中可以有普通方法,但不一定有抽象方法。
抽象类 :abstract class 类名{}
抽象方法:public abstract 返回值类型 方法名();
不能和以下关键字同时存在。
this和super
abstract因为是动态的非常量的,不能和以下关键字使用:①不能和private一起修饰方法。②不能和final创建变量。③不能和static修饰方法。
但可以按照如下照片内容使用:
1 public class Test { 2 public static void main(String[] args) { 3 new NewPhone().showNum(); 4 } 5 } 6 7 //手机类 8 class Phone{ 9 public void sendMessage(){ 10 System.out.println("发短信"); 11 } 12 public void call(){ 13 System.out.println("打电话"); 14 } 15 public void showNum(){ 16 System.out.println("来电显示号码"); 17 } 18 } 19 20 //智能手机类 21 class NewPhone extends Phone{ 22 23 //覆盖父类的来电显示号码功能,并增加自己的显示姓名和图片功能 24 public void showNum(){ 25 //调用父类已经存在的功能使用super 26 super.showNum(); 27 //增加自己特有显示姓名和图片功能 28 System.out.println("显示来电姓名"); 29 System.out.println("显示头像"); 30 } 31 }