封装,继承和多态

10 篇文章 0 订阅
2 篇文章 0 订阅

面向对象(物以类聚)的三大基本特征:封装,继承和多态

1.封装(数据隐藏):将数据和行为结合在一个包中,并对对象的使用者隐藏了数据的实现方式,关键在于不能让类中的方法直接访问其它类的实例域(数据),只能访问自己的实例域,提高重用行和可靠性

2.继承:利用已有的数据类型(类)来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。(java中只有共有继承,但父类中的私有属性或方法在子类中是不可见的,可设置保护方法或保护属性使其在子类中访问)

好处:重用代码,节省程序设计的时间,提高软件模块的可复用性和可扩充性,以便提高软件的开发效率。

3.多态:通过类的继承,使得同一个函数可以根据调用它的对象的类型的不同做出不同的响应。自始至终都是子类对象在变化

前提:需要有类的继承关系和覆盖方法

好处:提高了程序的扩展性,不需修改或增加太多的代码


class Animal
{
	void eat()
	{}
}
class Cat extends Animal
{
	public void eat()
	{
		System.out.println("猫吃饭");
	}
}
class Dog extends Animal
{
	public void eat()
	{
		System.out.prinln("狗吃饭");
	}
}
class  DuoTaiDemo
{
	public static void main(String[] args) 
	{
		Cat c=new Cat();
		c.eat();
		Dog d=new Dog();
		d.eat();
		//如果还有另一Dog则需重新再new一个对象,调用其方法,或者使用下面定义的catfun()方法
		System.out.println("Hello World!");
		//此时可以使用Animal定义,则更为简单
		Animal c=new Cat();
		allfun(c);
		Animal d=new Dog();
		allfun(d);
	}
	public static void catfun(Cat c)
	{
		c.eat();
	}
	public static void dogfun(Dog d)
	{
		d.eat();
	}
	//如果再有另一动物Pig等,则需再增加一个方法,此时会增加过多的代码
	//所以上述定义可以使用下面的方法定义
	public static void allfun(Animal a)
	{
		a.eat();
	}
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值