多态,抽象类,使用继承关系

1,多态的向上转型和向下转型

多态的向上转型:多态的第三个前提条件--->父类引用指向子类对象	
		格式:Fu fu = new Zi() ;
		
多态的弊端:不能访问子类的特有功能
    可以使用向下转型:
     将父类的强转强转转换为子类引用
     Zi zi = (Zi)fu;

2.多态的前提条件以及成员访问特点

前提条件
	1)必须存在继承关系
	2)存在方法重写
	3)父类引用指向子类对象
成员访问特点
	1)成员变量:编译看左,运行看左
	2)成员方法:编译看左,运行看右(存在重写) 非静态方法
	3)静态方法:编译看左,运行看左 ,算不上方法重写,类名访问
	4)构造方法:
			分层初始化--先让父类进行构造初始化-----然后才是子类!

3.抽象类的成员特点

抽象类中:
	成员变量:可以是变量,也可以是常量!
	成员方法:即可是抽象方法,必须携带abstract关键字,也可以是非抽象方法
	构造方法:存在无参/有参构造方法----对数据进行初始化

4.什么是抽象类,抽象类如何实例化

/*
一般情况:将一些共性内容抽取到独立的类中,并且有些功能仅仅给出声明,不具体实现,具体的实现通过子类进行实现,当前这个方法就是抽象方法--->必须为抽象类(Animal,Person,Buble:灯泡,Fruit...)
 
  	抽象类---->强制子类必须完成的事情(重写抽象类中的所有抽象方法!)
  	
 抽象类的最大特点:不能实例化,不能new ,只能通过子类进行实例化
 抽象的父类指向子类对象--->抽象类多态   :Fu fu  = new Zi() ; (Fu类是抽象类)
    抽象类的子类如果为抽象类,那么一定会存在最具体的子类,否则不能实例化了!
  */  
    abstract class Amimal{
    		public abstract void eat() ;
    }
    
    abstract class Cat extends Animal{
    		public  void eat() {
    				//xxx
    		}
    }

	//最具体的子类 extends Cat {
	
	//}
    //测试类中
    class  Test{
    	public static void main(String[] args){
            //Animal a = new Cat() ; //Cat是抽象类
            Animal a = new 最具体的子类() ;
        }
    }

5.多态的好处是什么?

提高代码的复用性---继承来保证
提高代码的扩展性---多态保证(后期使用最多):父类引用指向子类对象  Fu fu = new Zi() ;

6.什么时候使用继承关系?

如果A类是B类的一种,或者B类是A类的一种,这个使用extends完成两者继续关系,体现的是一种"is a"的关系!
不要为了部分功能而去使用继承!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值