1.什么是继承
格式:子类 extends 父类 ;
父 类,又称 超类;
子类,又称 派生类;
基于已有类,一种创建类的 机制和方法,为的是 简化代码;
注意:①一个类由final修饰,则该类没有子类。如:String,System,Class,Scanner,基本数据包装类(Byte,Short,Integer,Long,Double,Float,Boolean,Char)
②子类可以继承父类方法,但不是所有方法,取决于优先级(访问权限)。子类可以增加新的属性与方法。
2.父类构造方法对子类构造方法的影响
super();//调用父类参构造方法,有效代码行第一行
1.如果子类构造方法没有调用本类构造方法,也没有指定调用父类构造方法,则默认调用父类无参构造方法。
2.如果父类没有无参构造方法(无论是隐式的还是显式的),子类构造方法必须直接或间接指定调用父类哪个构造方法。
同时:子类属性的属性名与父类重复,则子类对象使用的是子类中的属性,可以使用Super关键字使用父类中的属性。
3.为什么重写以及如何重写
为什么? 父类方法行为特征,不能满足子类需要。
特点:子类重写后的方法 用 @override注解修饰
怎么重写? 重写:子类中,重新改写父类方法
①方法名和参数列表相同
②返回值类型:i.如果父类方法返回值类型为void或基本数据类型,则子类必须一致;
ii,如果父类方法返回值类型为引用数据类型,则子类重写后的方法的返回值类型要么与父类一致,要么子类重写后的方法的返回值类型是父类方法返回值类型的子类;
③修饰符:i.父类方法由final修饰,则子类不允许重写
ii.父类方法由static修饰,则子类可以继承但不可以重写;子类重写后的方法也不允许由static修饰
④访问权限:子类重写后的方法访问权限要么相同,要么比父类大。
4.什么是多态
父类类型的变量=子类创建的对象(向上转型),运行时,执行子类的方法,编译时,执行父类的方法(因此引申出多态)
多态:多种行为状态,子类创建的对象赋值给父类类型的的变量,使用该变量调用被子类重写的方法,则该方法编译时和运行时表现出不同的行为状态。
多态一定是编译时和运行时不一致;多态一定伴随方法重写;
多态中子类创建的对象称为上转型对象,上转型对象不能调用子类新增的方法和属性;
上转型对象为了调用子类新增的属性和方法,需要下转型;
//以father为父类,son为子类则:
Father father = new Son ;//上转型
Son s = (Son)father;//下转型(类似强制转换)
如果子类属性名和父类相同,则上转型对象调用的属性为父类中属性;
5.总结final和super
This是一个代词,指的是对象。
final关键字可以用来修饰类、方法和变量:
final修饰的类不能被继承。
final修饰的方法不能被重写。
final修饰的变量是常量,不允许二次赋值。
super使用原则:
super关键字可以调用父类的成员变量( super.属性)和方法( super.父类方法([参数列表]))子类构造方法中可以使用super关键字调用父类的构造方法: super([参数列表]);
super不能用于静态方法或静态代码块中。
写在后边
今天的知识还是比较好理解的啦
没有前两天那么不舒服
然后 其实我今天在学习之前还有抱怨 没有周末的嘛(小声BB)
但是确实 学完之后发现东西还是不是太多的
对了 现在还是打基础阶段
我自己感觉问题还不是太大
但是我觉得如果能有个小组 互相 督促学习
互相提问 互相质疑 互相帮衬 会好一点
差不多这样
其实关于保研会有一点想法
但是 咱要做一个正经的 编程博主
就不像一个怨妇一样 天天吐槽了 哈哈哈哈