关闭页面特效

多态,构造方法

1|0多态,构造方法


具有多个不同形态的表现形式,父类引用指向子类对象,父new子

父类类型 变量名=new 子类对象(); 接口 接口名=new 实现类对象();

1|1使用多态访问成员变量


直接访问成员变量

看等于号左边是谁,优先使用,没有则向上找

间接通过方法访问成员变量

看方法属于谁,优先使用,没有则向上找,如果子类重写方法,就是子,没有重写就是父

使用多态访问成员方法:看new的是谁,就优先使用谁,没有则向上找 成员变量:编译看左边,运行看左边 成员方法:编译看左边,运行看右边

1|2多态的好处


  • 无论右边new的哪个子类,等于号左边在调用的时候方法不需要变化
  • 使代码更加的简单简洁,并具有良好的扩展性

1|3多态的转型


向上转型

父类 对象名 = new 子类名称(); 右侧创建一个子类对象,把它当做一个父类使用,小范围转大范围 Animal a = new Dog(); double d = 100; 向上转型绝对安全

向下转型

还原的操作 子类名称 对象名 = (子类名称) 父类对象; 将父类对象,还原成子类对象 ClassCastException:类型转换异常 instanceof 关键字判断类型

1|4权限修饰符


final:代表最终,不可改变
修饰成员变量:值不能改变,必须赋初始值
修饰局部变量:值不能改变
修饰类:不能有子类
修饰方法:不能被重写
(修饰对象):内存地址锁定

public(公开的) protected(受保护的) default(默认,不能写) private(私有的)
同一类中 Yes Yes Yes Yes
同一包中(子类和无关类) Yes Yes Yes
不同包的子类 Yes Yes
不同包的无关类 Yes

成员变量使用private
方法受用public,便于调用
构造方法使用public,方便创建对象

1|5构造方法


  • 在创建对象的时候会自动调用构造方法,如果没有自定义构造方法,那么JVM会自动创建一个空参构造
  • 当自定义了构造方法以后,JVM将不会自动创建空参构造方法
  • 构造方法没有返回值,也不需要写返回值,因为这个方法就是来创建对象的,创建完对象,方法就会结束
  • 构造方法名字必须和类名完全一致
  • 构造方法是可以重载出现的
  • 构造方法能被修饰为private,作用就是为了阻止该类创建对象

1|6构造方法和普通方法的区别


  • 构造方法在创建对象的时候会自动调用,并且只执行一次
  • 普通方法需要手动调用,可以使用多次

构造方法之间是可以进行调用的,但是不能直接写方法名,写this();

1|7子类调用父类构造方法


默认直接调用,隐式代码super();
但是this()和super()同时存在会报错,因为this()和super()必须都在代码的第一行;


__EOF__

作  者YXH
出  处https://www.cnblogs.com/YxinHaaa/p/17366470.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   YxinHaaa  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示