继承与多态

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)
但是确实 学完之后发现东西还是不是太多的
对了 现在还是打基础阶段
我自己感觉问题还不是太大
但是我觉得如果能有个小组 互相 督促学习
互相提问 互相质疑 互相帮衬 会好一点
差不多这样
其实关于保研会有一点想法
但是 咱要做一个正经的 编程博主
就不像一个怨妇一样 天天吐槽了 哈哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值