Java面向对象--继承(下)

Object类:
•Object类是所有类的父类

•一个类没有使用extends关键字来明确标识继承关系,默认继承Object类(包括数组)

•java中的每一个类都可以使用Object类中的方法


关于Object类中的equals方法,及在String类中重写的equals方法:

public class Test1 {

	public static void main(String[] args) {
	Animal one = new Animal("花花",2);
	Animal two = new Animal("花花",2);
	//equals()测试:
        //1、继承自Object的equals方法时,比较的是两个引用是否指向同一个对象
	//2、子类可以重写equals方法,来改变比较的内容
	boolean flag = one.equals(two);
        System.out.println("one和two的引用比较:"+flag);//结果是false
        System.out.println("one和two的引用比较:"+(one == two));//结果是false
        
        String str1 = new String("hello");
        String str2 = new String("hello");
        flag = str1.equals(str2);
        System.out.println("str1和str2的引用比较:"+flag);//结果是true,
        //在String类里重写了equals方法,只进行比较字符串是否相同
        System.out.println("str1和str2的引用比较:"+(str1 == str2));//结果是false
        
	}

}

在Animal类中重写equals()方法:用来比较Animal 类实例化对象值的内容

	// 重写Object类里的equals()方法
	public boolean equals(Object obj){
		if (obj == null) {
			return false;
		}
		// 将Object强制转换为Animal类
		Animal temp = (Animal)obj;
		if (this.getName()==temp.getName() && this.getMonth() == temp.getMonth())
			return true;
		else
			return false;
	}

toString()方法:

		//toString()测试:
		//1、输出对象名时,默认会直接调用类中的toString()方法
		//2、继承自Object类中的toString()方法时,输出对象的字符串表现形式:类型信息+@+地址信息
		//3、子类也可以通过重写toString()方法,来改变输出的内容
		System.out.println(one.toString());//会输出:com.imooc.animal.Animal@7852e922
		System.out.println(two.toString());

final关键字:

•final + class:表示该类不允许被继承

譬如:public final class Animal{},或者final public class Animal{}, 表示Animal类不允许被继承

•final + 方法:表示该方法不允许在子类被重写,但可以在子类中正常使用,也可以在本类中重载

•final + 方法内局部变量:表示其值在赋值以后不允许被修改

•final + 类中成员属性 :定义的时候可以直接对其赋值,如果在定义的时候并没有对其赋值,那么只能在构造方法和构造代码块两个位置进行赋值

1、定义直接初始化 2、构造方法内赋值 3、构造代码块内进行赋值

 

 

 


 注解:

•源码注解:只在源码中存在,编译成.class文件就不存在了

•编译时注解:注解在源码和.class文件里都存在

•运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解

 

 


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值