java初步学习 继承与多态(基于黑马的课进行自学,初学者,不喜勿喷)13
初步学习
继承
基本概念
面向对象有三大特征,分别是封装,继承,多态,其中封装是让我们更好的区分程序的各个模块,而继承则是让我们更好地偷懒,以免重写很多重复代码
子类继承父类之后,就可以重写父类中的方法,还可以增加功能
而一般子类和父类从逻辑关系上能构成从属关系(如“人”和“程序员”),且两者都有相同的属性(如“吃饭,睡觉”等),就可以使用继承来提高代码的复用性
继承的特点
在java中,继承只能单继承,不可多继承,指一个子类不可以继承多个父类,但一个父类可以被多个子类继承
且继承也会被私有修饰符影响
构造方法: 非私有 可继承 private 不可继承
成员变量: 非私有 可继承 private 可继承
成员方法: 非私有 可继承 private 不可继承
而在java中,方法在继承中会被储存到虚方法表内
虚方法表会先储存object中的五个方法,在父类中会将某一方法替换为其的重写方法,也会添加新的方法,若子类中的方法被调用但找不到对应方法就会从虚方法中找到对应方法
而经static private final修饰的方法是无法被添加进虚方法表的
基本格式
public class 父类名{}
public class 子类名 extends 父类名{}
修饰符super则是表示调用该类的父类中的对应方法或变量
多态
基本概念
多态是指一个对象的多种形态,且必须依赖于对象之间继承关系
例如 :
若“Student”为“Person”的子类
Student s = new Student(); 该格式为学生对象的学生形态
Person p = new Student(); 该格式为学生对象的人形态
而若用这种方法来初始化对象,且用该对象来调用方法,则编译看左,运行看左的原则,即代码的错误标准为父类中的方法,而运行也是运行父类中的方法
若用该对象来调用变量,则编译看左,运行看右的原则,即代码的错误标准为父类中的方法,而运行是调用运行子类中的变量
而我们也可以用“instanceof”来判断对象的形态
例:所写代码及其运行结果如下


可以看到,多种形态的对象都符合两者的判断标准
而多态种特殊的是,我们在调用的时候可以在形参中输入父类对象,而在实参中输入子类对象,这样可以更加灵活
例:所写代码及其运行结果如下、




可以看到多态的实际应用(虽说语法基本上用不着)

浙公网安备 33010602011771号