Java封装继承多态

封装:

封装:

Encaplation
用private将不期望被外界访问的方法和属性隐藏起来
	**封装对于类的开发者和使用者都有好处:**
  • 对于类开发者:
    能够让数据得倒保密 得到隐藏 从而更加安全
  • 对于类的使用者:
    能够让使用者将经理 全部集中在核心业务逻辑上

类的开发应当高内聚 低耦合
------------ 内聚:独立完成功能的能力 - 自强不息 自己的事情自己做
-------------耦合:模块与模块之间的依赖关系

所有的属性应当用private修饰
-------------并且提供两个public方法 setter getter
可以给设置和得到属性一种统一的方式 有助于代码的解耦
可以让程序员拿回主动权 让程序员决定 是否需要用户设置和得到属性

所有方法应当考虑:
一个方法究竟是给外界提供的核心方法 还是给核心方法服务的方法
核心方法用public修饰
给核心方法服务的方法应当用private对外屏蔽

class Teacher{
	private String name;
	private int age;
	public void setName(String name){
		this.name = name;
	}

	public String getName(){
		return name;
	}
	public void setAge(int age){
		this.age = age;
	}
	public int getAge(){
		return age;
	}

	//吃饭的方法
	private void eat(){
		System.out.println("吃饭啦!");
	}
	//睡觉的方法
	private void Sleep(){
		System.out.println("睡觉啦!");
	}
	//还会LOL
	private void LOl(){
		System.out.println("LOL!");
	}
	//我的核心方法
	public void teach(){
		sleep();
		eat();
		LOL();
		SYstem.out.println("I am a techer!");
	}

}

继承:

extend 建立两个类之间 is a的关系

  • *:Java中的类 全部继承Object
  • *:Java当中的类只支持单根继承 接口是允许多重继承的

关于继承:

关于私有属性 有没有继承 能不能继承 算不算继承

  • 私有属性在子类的存储空间当中它是切实存在的
  • 但是是由于Java当中创建对象的流程所决定的
  • private 访问控制权限修饰符

多态:

Polymorphism

  • 静态多态 编译多态:java当中的方法重载
  • 动态多态 运行时多态:一个对象总有多种称呼他的类型 一个事物总有多种存在的形态
    *: 动态多态出现肯定会伴随着一种语法:
    + 父亲类型 = 子类对象;
    + 接口类型 = 实现类对象;

多态需要注意什么?
对象是在内存中客观存在的 不会因为改变称呼它的类型而发生任何便把
但是编译器看等号左边的类型进行语法检查

多态存在的价值?
*:能够让先开发完成的类型在不做任何修改的情况下 跟之后开发出来的新的类型结合起来使用 而且不需要改变
*:多态的存在能够降低人与人 组与组之间的耦合关系



public class TestPoly{
	public static void main(String[] args ){
		Restaurant = new Restaurant();
		Chinese xiaoBo = new Chinese();
		American xiaoAo = new American();
		kfc.service(xiaoBo);
		kfc.service(xiaoAo);
	}
}

class Restaurant{//餐厅

//传统方式 过耦合
	public void service(Chinese xiaoAo){
		xiaoAo.eat();
	}
	public void service(Japanse xiaoAn){
		xiaoAn.eat();
	}
	public void service(American xiaoAa){
		xiaoAa.eat();
	}

//多态的应用

	public void service(People xiaoRen){
		xiaoRen.eat();
	}
}


	//多态
	public void service(People )
class People{
	public void eat(){
		System.out.println("人类吃饭!");
	}
}

class Chinese extends People{
	public void eat(){
		System.out.println("中国人吃水饺");
	}
}

class American extends People{
	public void eat(){
		System.out.prinlnt("美国人吃牛排");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oifengo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值