栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day

继承:extends

  • 减少代码的冗余
  • 提高复用性 便于扩展
  • 为多态性提供前提

结构:
class A extends B{}
A:子类
B:父类 、基类 、 超类
声明后:A获得B的所有(包含私有)属性 方法
一个子类只能有一个父类,但一个父类可以被多个子类继承

Object类:java中所有类都直接或间接继承了Object类

overrides:
对父类中的同名,同参数列表方法:重写

idea中的overrides标记
方法的重载与重写:
重载:同名 参数列表不同 在编译期就确定了
重写:

  • 同名
  • 同参数列表
  • 重写的方法权限不小于被重写方法的权限修饰符(权限只能放大)
  • prviate 的方法不能被重写(报错)

返回值类型

父类(被重写)子类(重写)
voidvoid
基本数据类型相同的数据类型
A类A类或A类的子类

super关键字:

  • 理解为:父类的 类比(this)
    当子类定义了与父类同名的属性、方法时:
    采用"super.属性"、“super.方法”、"super.构造器"调用父类中对应的属性方法构造器

super(形参列表):表示调用父类指定的构造器
在子类的构造器首行没有显式定义super()或者this()则默认使用super()

子类构造器一定直接或间接调用父类的构造器,虽然创建子类对象时调用了父类的构造器,但是仅仅创建了一个对象即new的对象。
创建子类对象后获取全部父类的方法,并且在堆空间中加载了所有父类的属性,但父类并没有生成对象。

多态性:
例如:
父类: Persong
子类:Man 、 Woman
一般的:

Man man = new Wan();
Woman woman = new Woman()

多态性:父类的引用指向子类的对象

Person man = new Man()

此时调用man的方法时,执行的是子类重写父类的方法(虚拟方法调用)。但是不能再调用men本身特有的方法,只能调用父类Person有的方法。
即编译时看Person有没有对应方法,运行时调用的是子类重写的方法。
编译看左边,运行看右边
多态性使用的前提:

  • 存在继承关系
  • 存在方法的重写
    方法可以重写,但属性 为父类的属性。
public class animalTest {
    public static void main(String[] args) {
        animal animals = new animal();
        doit(new dog());
        doit(new cat());

    }

    public static void  doit(animal animals){
        animals.eat();
        animals.shout();
    }
    
}

定义时看不出会执行什么函数,只有在运行时才能确定具体运行哪一个重写。

向下转型:
a instanceof A:对象a是否为类A的实例。
对于类的转换存在转换失败的情况,因此采用instanceof进行判定

Man p1 = new Men
Women p2 = (Women)p1//通过强制类型转换 将men转换为women

为了在向下转型的过程出现ClassCastException的异常,在向下转型前采用instanceof进行判定,若返回true则进行向下转型,否则不进行转型
若 a instanceof A 返回true则
将A替换为A的任意父类 仍然返回true

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694515.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号