继承,是指在已有类的基础上创建新类的过程。子类继承父类中的所有属性和方法,虽然不一定都能调用,但是还是很大程度上提高代码的重用性。而且在父类的基础上,子类还能再添加新的属性和方法,所以也提高了程序的扩展性。
继承后的调用:
1子类和父类在同一个包中时,能被调用的有 默认的,受保护的,公有的方法和属性。
2子类和父类不在同一个包中,能被调用的只有 公有的。
3在子类的{}中,能被调用的有 公有的和受保护的。
方法的重写:
必须是在继承的前提下,且方法名,返回值类型和参数的个数,参数的类型,参数顺序等必须相等,访问修饰符类型必须是子类大于父类。调用时,会先从子类中寻找方法,如果没有,再从父类中寻找
(对比重载,是在同一个类中,方法名相同,参数个数,参数类型和参数的顺序至少一个不同的条件下形成的。)
自动转型:
同样必须是在继承的前提下。自动装换成子类的一种行为。
分三种方式:方式一:
父类 对象名;
对象名 = new 子类名(实参,...);
父类 对象名 = new 子类名(实参,...);
方式二:
第三方类中的方法
public void 方法(父类 对象名){
//调用的方法必须要在父类中存在
}
创建对象
父类 对象名A = new 子类名(实参,...);
子类 对象名B = new 子类名(实参,...);
调用方法
方法(对象名A);
方法(对象名B)
方式三:
任一方法(父类 父类对象){
}
在这里面的小括号中,不仅可以父类对象,还可以填子类对象,同样有效。
其中第三种方式尤为常用。
多态:
这是融合了上面所说的方法重载,方法重写,自动转型,继承的基础上的一种效果。
继承后的调用:
1子类和父类在同一个包中时,能被调用的有 默认的,受保护的,公有的方法和属性。
2子类和父类不在同一个包中,能被调用的只有 公有的。
3在子类的{}中,能被调用的有 公有的和受保护的。
方法的重写:
必须是在继承的前提下,且方法名,返回值类型和参数的个数,参数的类型,参数顺序等必须相等,访问修饰符类型必须是子类大于父类。调用时,会先从子类中寻找方法,如果没有,再从父类中寻找
(对比重载,是在同一个类中,方法名相同,参数个数,参数类型和参数的顺序至少一个不同的条件下形成的。)
自动转型:
同样必须是在继承的前提下。自动装换成子类的一种行为。
分三种方式:方式一:
父类 对象名;
对象名 = new 子类名(实参,...);
父类 对象名 = new 子类名(实参,...);
方式二:
第三方类中的方法
public void 方法(父类 对象名){
//调用的方法必须要在父类中存在
}
创建对象
父类 对象名A = new 子类名(实参,...);
子类 对象名B = new 子类名(实参,...);
调用方法
方法(对象名A);
方法(对象名B)
方式三:
任一方法(父类 父类对象){
}
在这里面的小括号中,不仅可以父类对象,还可以填子类对象,同样有效。
其中第三种方式尤为常用。
多态:
这是融合了上面所说的方法重载,方法重写,自动转型,继承的基础上的一种效果。