java-面向对象:多态

多态

一种事物有多种称呼,一个对象可以用父类的类型引用,叫多态

多态体现了对象类型的灵活性

注意:在编译期系统认为这个对象的类型是父类类型,在运行期实质是子类对象。

    1.  用多态写法的时候,调用父类的方法,不能调用子类独有的方法。

   	 持有你的对象,清楚对象的型别

 2. 如果用多态,类型表示的太远,就会有方法的缺失

    如果要调用子类对象独有的方法,就要转型

转型

如果要调用子类对象独有的方法,就要转型

类转型异常 ClassCastException

通过 instanceof 的判断 避免转型异常

		Object obj = new Person();
		if(obj instanceof String) {
			String str = (String)obj;
		}

public class Movie {
	public void play(Person p) {
		p.speak();
		if(p instanceof Chinese) {
			Chinese c = (Chinese)p;
			c.comic();
		}else if(p instanceof English) {
			English e = (English)p;
			e.dance();
		}else if(p instanceof Japanese) {
			Japanese j = (Japanese)p;
			j.eat();
		}
	}
}

equals方法
判断两个对象是否“相等”

  1. == 表示比较两个对象的地址是否相同,Object类中的equals方法就是 比较
    如果没有重写equals方法 做
    比较

  2. 如果要比较两个字符串的内容,用equals比较,因为字符串类重写了equals方法

  3. 我们可以根据需求重写类的equals方法,完成"相等"的比较

     @Override
     public boolean equals(Object obj) {
     	if(this==obj) {
     		return true;
     	}
     	if(obj instanceof Account) {
     		Account a = (Account)obj;
     		if(this.sfzhm.equals(a.sfzhm)&&this.name.equals(a.name)&&this.accountNo.equals(a.accountNo)) {
     			return true;			
     		}
     	}
     	return false;
     }
    

static关键字

修饰属性、方法、游离块、内部类

属性:静态的属性,对象是共享的

方法: 调用静态属性\方法时,可以用对象调用或用类名直接调用。

注意:在静态方法\游离块中,只能使用静态的属性,也不能用this关键字。

   提示:Cannot make a static reference to the non-static field name

    在非静态方法\游离块中,可以使用静态和非静态的属性。

游离块

类中的语句块({内容})

执行顺序:在执行构造器之前,先执行游离块

如果有父类和子类,顺序为 父类游离块--父类构造器--子类游离块--子类构造器

静态游离块

用static修饰的游离块

当类被加载时,执行静态游离块,类加载一次因此静态游离块也只执行一次

如果有父类和子类,顺序为 父类静态游离块--子类静态游离块--父类游离块--父类构造器--子类游离块--子类构造器

final关键字

修饰类、属性、方法

final修饰的类不能被继承

final修饰的方法不能被重写

final修饰的属性不能被修改,且一定要初始化(系统不为对象的final属性初始化)

	如果修饰的是引用类型的属性,引用不能修改,但其引用对象的属性是可以修改的。

常量写法规范

public static final String ADDRESS = “192.168.1.1”;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值