封装,继承,多态

1 篇文章 0 订阅
1 篇文章 0 订阅

封装,继承,多态

封装

封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。例如,用户使用电脑,只需要使用手指敲击键盘就可以实现一些功能,用户无须知道电脑内部是如何工作的,即使用户可能碰巧知道电脑的工作原理,但在使用电脑时并不完全依赖于电脑工作原理这些细节。
封装示意图

继承

类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间这种关系被称为关联。关联是描述两个类之间的一般二元关系,例如一个百货公司类与销售员类就是一个关联,再比如学生类以及教师类也是一个关联。两个类之间的关系有很多种,继承是关联中的一种。
继承示意图

继承代码块

//动物类
public class Animal {
    private String name;
    public Animal() {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    //吃东西
    public void eat(){
        System.out.println(this.getName()+"在吃东西");
    }
}
//猫类
public class Cat extends Animal {
    public Cat() {

    }

    //跑动的方法
    public void run(){
        System.out.println(this.getName()+"是一只猫,他在跑。");
    }

}
//狗类
public class Dog extends Animal {

    public Dog() {
    }
    public void sleep(){
        System.out.println(this.getName()+"是狗,现在在睡觉。");
    }


}

多态

多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样降低了维护的难度,节省了时间。
在提到多态的同时,不得不提到抽象类和接口,因为多态的实现并不依赖具体类,而是依赖于抽象类和接口。

多态代码(以下是猫狗多态动物类操作)

class Animal{
	public void eat(){
		System.out.println("吃饭");
	}
}
class Dog extends Animal{
	public void eat(){
		System.out.println("狗吃肉");
	}
	public void lookDoor(){
		System.out.println("狗看门");
	}
}


class Cat extends Animal{
	public void eat(){
		System.out.println("猫吃鱼");
	}
	public void playGame(){
		System.out.println("捉迷藏");
	}
}
public class DuoTaiTest {
	public static void main(String[] args){
   		//定义为狗
		Animal a = new Dog();
		a.eat();
		System.out.println("------------");
		//还原成狗
		Dog d = (Dog) a;
		d.eat();
		d.lookDoor();
		System.out.println("-------------");
		//变成猫
		a = new Cat();
		a.eat();
		System.out.println("-------------");
		//还原成猫
		Cat c = (Cat)a;
		c.eat();
		c.playGame();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值