java继承与多态的概念(三石说:Java基础 封装,继承,多态)java基础 / Java继承与多态...

wufei123 发布于 2024-06-17 阅读(4)

今日是元宵节了 我们将继续谈谈关于面向对象,在java基础系列文章的开篇已经写了什么是面向对象,今天我们重点看下关于这个面向对象的精华封装(Encapsulation),继承,多态封装:是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

将对象的Field和实现细节隐藏起来,不允许外部直接访问把方法暴露出来,让方法来控制对这些Field进行安全的访问和操作String的equals()方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。

java继承与多态的概念(三石说:Java基础 封装,继承,多态)java基础 / Java继承与多态...

当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就将返回true继承:用extends关键字来指定接口继承哪个父类,

[修饰符]class 子类名 extends 父类名{类体}子类名必须选参数一般情况首字母大写,继承的父类必须选择参数,用于指定要定义的子类继承于哪个父类在继承中也有重写,就是子类中的方法名与父类的方法名相同,子类就不能继承父类的方法,子类重写了父类的方法;重写体现了子类对父类的补充和改变父类的能力;使一个方法在不同的子类中表现的行为不同;

抽象抽象类中只有抽象方法没有方法体然后子类用继承的方法来把抽象方法重写,在抽象类中用abstract来定义类或者方法,修饰符不能为private,其中里面可包含普通方法,若子类不能实现其抽象方法则子类也必需定义为是抽象类在让他的子类来实现这些抽象类中的抽象方法;其中可以有静态的方法和变量。

抽象类是对一种事物的抽象属于一类(整个类)模板式设计在类中添加方法子类不会变动, 在调用时只能用子类new出一个对象来调用子类中重写的方法多态:通常使用的方法是重载和重写来实现类多态的性,多态作用:消除类型之间的耦合关系。

重载 :是方法与方法之间的使用,其中方法的重载是一个类中有多个同名的方法,但是方法中的参数应不相同// 判断时可以直接根据方法名字来判断;若调用时只需根据参数的类型,很参数的个数即可以调用构造器就是一个很好的重载的例子:

比如有参构造器,无参构造器涉及基本类型的重载:基本类型能从一个”较小“的类型自动提升至一个”较大“的类型,此过程一旦牵扯到重载会造成混淆重写:是子类与父类之间的关系中间涉及到继承与接口的知识抽象类:体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会大致保留抽象类的行为方式。

抽象方法和空方法体的方法不是同一个概念例如,public abstract void test();是一个抽象方法,它根本没有方法体,即方法定义后面没有一对花括号;但public void test(){}方法是一个普通方法,它已经定义了方法体,只是方法体为空,即它的方法体什么也不做,因此这个方法不可使用abstract来修饰。

abstract不能用于修饰Field,不能用于修饰局部变量,即没有抽象变量、没有抽象Field等说法;abstract也不能用于修饰构造器,没有抽象构造器,抽象类里定义的构造器只能是普通构造器抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法,留给其子类去实现。

父类中可能包含需要调用的其他系列方法的方法,这些被调方法既可以由父类实现,也可以由其子类实现父类里提供的方法只是定义了一个通用算法,其实现也许并不完全由自身实现,而必须依赖于其子类的辅助接口:对于接口里定义的常量Field而言,它们是接口相关的,而且它们只能是常量,因此系统会自动为这些Field增加static和final两个修饰符。

也就是说,在接口中定义Field时,不管是否使用public static final修饰符,接口里的Field总将使用这三个修饰符来修饰而且,接口里没有构造器和初始化块对于接口里定义的方法而言,它们只能抽象方法,因此系统会自动为其增加abstract修饰符;由于接口里的方法全部是抽象方法,因此接口里不允许定义静态方法,即不可使用static修饰接口里定义的方法。

不管定义接口里方法时是否使用public abstract修饰符,接口里的方法总是使用public abstract来修饰接口的实现:[修饰符]class 类名extends 父类名接口中的变量是静态终结变量public abstract final 变量名,方法:是抽象的方法;不能有静态代码与方法;接口是对行为的抽象(局部类)辐射式设计接口中添加方法子类中都要变动;使用implements时接口列表必须选参数接口列表中存在多个接口名时各个接口名之间使用逗号在接口中:系统默认接口中的方法为抽象方法,不能在接口中有方法体同时要想实现接口的方法也要用继承然后在子类中重写接口中的抽象方法接口可以继承父接口但不能继承类,可以用子类继承接口,调用时与调用抽象类的方法是一样的,。

接口与抽象类比较:接口里只能包含抽象方法,不包含已经提供实现的方法;抽象类则完全可以包含普通方法接口里不能定义静态方法;抽象类里可以定义静态方法接口里只能定义静态常量Field,不能定义普通Field;抽象类里则既可以定义普通Field,也可以定义静态常量Field。

接口里不包含构造器;抽象类里可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作接口里不能包含初始化块;但抽象类则完全可以包含初始化块一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承的不足。

好了,这就是今天要讲的内容,具体后面的请继续关注我。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻18462