zoukankan      html  css  js  c++  java
  • java多态及tostring方法与equals方法的重写

    1.多态性的表现:①方法的重载与重写 ②子类对象的多态性
    2.使用的前提:①要有继承关系 ②要有方法的重写
    3.格式:Person p = new Man();//向上转型
    // 虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法
    p1.eat();
    p1.walk();
    // p1.entertainment();

    4.>编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能够调用
    >子类对象的多态性,并不使用于属性。

    5.关于向下转型:
    ①向下转型,使用强转符:()
    ②为了保证不报ClassCastException,最好在向下转型前,进行判断: instanceof
    // 若a是A类的实例,那么a也一定是A类的父类的实例。
    if (p1 instanceof Woman) {
    System.out.println("hello!");
    Woman w1 = (Woman) p1;//强制向下转型
    w1.shopping();
    }

    if (p1 instanceof Man) {
    Man m1 = (Man) p1;
    m1.entertainment();
    }

    重写equals方法:

    package duotai;
    
    public class equa {
    	String name;
    	  int age;
    public equa(String name,int age){
    	this.name=name;
    	this.age=age;
    }
      public boolean equals(Object obj){
    	  
    	  if(obj!=null){
    		  if(obj instanceof equa){
    			  equa eq=(equa)obj;
    			  return this.name.equals(eq.name);//这里是需要返回值的,所以需要return
    		  }
    		  }return false;//等于空直接返回false!
    	
      
    }}
    class equa2{
    	public static void main(String[] ages){
    	equa e1=new equa("gao",13);
    	equa e2=new equa("gao",13);
    	
    	System.out.println(e1.equals(e2));
    }}
    

    toString方法重写:

    package duotai;
    
    public class tos {
      String name;
      String sex;
      public String toString(){
    	return name+sex;
    	  
      }
    }
    class text{
    	public static void main(String[] args){
    		tos t=new tos();
    		t.name="gao";
    		t.sex="nan";
    		System.out.println(t.toString());
    	}
    }
    

      

  • 相关阅读:
    MYSQL之查询篇
    MYSQL之概念基础篇
    订餐系统之组合捜索
    订餐系统之微信点餐
    订餐系统之定时器Timer不定时
    订餐系统之地图订餐
    结构型模式:装饰模式
    结构型模式:组合模式
    结构型模式:桥接模式
    结构型模式:适配器模式
  • 原文地址:https://www.cnblogs.com/gaofangquan/p/7210218.html
Copyright © 2011-2022 走看看