第三章:多态

什么是多态?

简单来说,多态是具有表现多种邢台的能力的特征.更专业化的来说:同一个实现接口,使用不同的实例二执行不同的操作.

子类到父类的转换(向上转型)

规则:将一个父类的引用只想一个子类的对象,称为向上转型,自动进行类型转换.

  此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法.

  此时通过父类引用变量无法调用子类特有的方法.

使用父类作为方法形参实现多态

  使用父类作为方法的形参,是java中实现的使用多态的主要方式之一


01.多态是具有表现多种形态的能力的特征!
02.作用:同一个实现接口,使用不同的实例,而执行不同的操作。
统一调用 。
----------------------------------------------------------------------
01.父类到子类:(向下转型)
为什么进行向下转型:为了调用到子类特有的方法
Parent parent=new Child();
----say()
Child child=(Child)parent;
---say()
---eat()
子类到父类(向上转型) 为了实现统一调用
Parent parent=new Child();
-----------------------------------------

01.instanceof运算符
C#清空添加学生窗体上所有[文本框]的文本值。
foreach(Control item in this.Controls){
//判定当前控件的类型是不是文本框 TextBox
if(item is TextBox){
item.Text=String.Empty;
}
}
"" String.Empty null 区别?
解析:内存占用上:"" 占用
String.Empty: 占用 性能比""高
null:不占内存
String str="";
String str=String.Empty;
String str=null;
String str;
------------------------------------------------
1.父类类型作为参数

---------------------------------------------------
1.父类类型作为返回值, 单例 是部分语言的 正则表达式
Java 中单例 :

懒汉和饿汉模式


==和equals()
1.如果比较的是字符串,==和equals是不同的,因为String重写了Object的equals方法,结果就是如果比较两个字符串,只要字符串的内容一样,就返回true,
不用是同一个字符串对象,但是如果用==,比较的是内存地址,就要求,对象必须是同一个。


2.用户自定义类型,除非手动重写equals,否则==和equals等价,都比较内存地址。这都要归功于Object,任何自定义类型默认都继承自Object。
以为Object的equals内部就是使用==实现的。

-------------------------
如何保证多线程下的单例。

原文地址:https://www.cnblogs.com/LJN520/p/5535178.html