Java_OOP三大特性

1.多态

1.1定义

是指一种行为,具有多种不同的表现形式

Java 父类 抽象方法 不同子类重写父类的方法是有不同的实现方式 。

1.2 多态的前提【重点】

a)继承或者实现
b)方法重写
c)父类引用指向子类的对象

父类类型 变量名=new 子类对象();
	变量名.方法名()

Father父类   Son子类
Son son=new Son(); ->son间接调用Father成员

Father f=new Son(); 多态
   f.method() ;-

当使用多态方式调用方法时,首先检查父类是否有该方法,如果没有,则编译错误,执行的是子类重写的方法。

Animal ->Cat Dog

1.3 多态好处

可以使用程序编写更加简单,并有良好的可扩展性

1.3.1、向上转型:

a)多态本身是子类类型向父类类型向上转型的过程,当父类的引用指向一个子类实例时,便是向上转型,这个过程默认完成。自动转型。
1.父类类型 变量名=new 子类类型()
Animal a=new Cat(); ->
Cat自动转成了Animal,实现上a.eat()但是执行
时候子类负责实现方法a.eat()
面向对象最精彩:
编译期:JVM -》Animal 引用
运行期:JVM -》父类引用指向哪子类 -》调用子类方法()

编译期-》喝水 运行期 可乐,冰水, 咖啡。

            Cat  cat=new Cat Dog dog=new Dog() ->编译期Cat 或 Dog   -》运行期-》eat()。
            Sheep p=new Sheep();   ->Animal a=new Sheep();  a.eat()

可扩展 易于修改 。
向上转型要点:
1.自动转型,隐式转换,向上转型就是父类引用指向子类实例,也可以说,子类对象可以赋值给父类引用。
2.向上转型,是安全的,因为子类都要重写父类的方法,父类引用指向哪个子类,就调用子类重写父类的方法。
3.向上转型,父类只能调用子类重写的方法,不能调用子类特有的方法。
(非调用子类特有的方法,需要向下转型)
4.父类的静态方法是不允许子类重写。

1.4小结:

1.4.1 多态:

同一行为,不同表现形式
Java多态:
1)继承关系
2)子类重写父类的方法
3)父类引用指向子类实例
父类引用指向子类实例—》向上转型-》子类会自动转成父类
父类.方法—》子类重写的方法完成。
好处:
编译期 -》父类引用
运行期 -》父类引用指向哪个子类的实例 -》调用方法-》由哪个子类 负责实现。

1.4.2 动态绑定:
     前提:向上转型
      机制:能识别出对象转型前的类型,从而自动调用该子类方法
	Animal.eat()   ->Cat cat对eat()方法重写

Animal.eat() ->Dog catdog对eat()方法重写
绑定:就是将一个方法和所在类连接在一起,就叫绑定

        Chinese c=new Chinese()   c.speak();speak()->Chinese 连接在一起
    分类:静态绑定和动态绑定
         静态绑定:在程序编译期就知道方法和哪个对象连接在一起。(前期绑定)
        动态绑定: 在程序运行期才能连接和类型绑定在一起,也就是说JVM
		    在运行期根据对象类型自动判断的连接哪个方法也叫后期绑定
1.4.3 向下转型:

a)父类转子类的过程,强制转换:
i.一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制转格式,就是向下转型。
ii.目的,父类能够调用子类特有的方法

2 接口
2.1概念:

是Java语言一种引用类型(数组、类与对象 接口、枚举)
如果说类内部封装了成员变量,构造方法,成员方法。
那么接口主要封装方法,方法集合。
a) 抽象方法 (抽象类可以有,可以没有 接口的方法必须是抽象)JDK1.7以前
b) 默认方法、静态方法(JDK1.8),私有方法(JDK1.9)
接口作用: 制定了标准或规范

2.2 接口定义:
	 interface 关键字  类 -》 .class,但是一定明确它并不是类,是一种引用的数据类型。【数组 类 接口枚举】

接口使用:接口的使用,它不以创建对象,但是可以被实现 (implements 类似于被继承)。一个接口实现类(可以看做接口子类),需要实现接口中所有抽象方法。创建该类对象,就可以调用方法了,如果你没有实现接口所有抽象方法,那么你肯定是抽象类。

接口语法格式:
Public interface 接口名称{
抽象方法
默认方法
静态方法
私有方法
}

接口实现类
Public class 类名 implements 接口{
必须要全部实现抽象方法
}

2.3 jdk 1.7接口新特性:

不光抽象方法
默认方法、静态方法 、私有方法

1.默认方法

 default 
interface A {
     public default void methodA(){
    
}
Public default void methodB (){
}
}

Interface B  {
     		public default void methodA(){
    
}
Public default void methodB (){
}
}
接口实现类:
          Public class C implements A,B {
            Public void method(){
             System.out.println(“method”) 
}
}

Public class c extends A,B 

2.4 Java 在接口层面->多实现

一个类可以实现多个接口
设计类时候
一个类继承于一个父类,同时可以实现多个接口 (间接实现多继承)

静态方法:static void methodB(){}

其他成员:
1.接口中无法定义成员变量,int a=0, a 接口可以定义常量,其值必须赋值且是不可改
接口变量都是常量,用public static final修饰 ,名字需要大写
2.接口中:没有构造方法,不能创建对象
3.接口中:没有静态代码块

面试题:接口和抽象类区别

1.抽象类要被子类继承(extends),接口要被类实现(implements)
2.抽象类里面方法,可以只有定义(抽象方法),普通方法方法声明方法实现
接口中的所有方法,都只有方法的声明,没有方法实现
3.抽象类可以有变量、接口中定义变量只能公开不可修改的常量。
4.抽象类可以构造方法,接口没有构造方法
5.接口可以多实现,抽象类只能单继承
6.接口的抽象级别要比抽象类高。
7.接口是设计结果,抽象类是重构结果
共同点:向上转型 -》父类的引用指向子类对象
动态绑定-》通过引用调用子类重写的方法
多态 (接口必须多态)

基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值