黑马程序员JAVA 090---100 小结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

091_面向对象(抽象类2)_黑马程序员_Java基础视频

抽象类和一般类没有太大的不同.

该如何描述事物,就如何描述事物,只不过,该事物中出现了一些看不懂的东西.

这些的不确定的部门,也是该事物的功能,需要明确出来,但是无法定义主体..

通过抽象方法来表示.

抽象类比一般类多了个抽象函数.就是在类中可以定义抽象方法.

抽象类不不可以实例化.,

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象.

092_面向对象(抽象类练习)_黑马程序员_Java基础视频

假如我们在开发一个系统时,需要对员工进行建模,员工包含3个属性,姓名

工号以及工资,经理也是员工,除了含有员工属性外,另外还有一个奖金属性,

请使用继承的思路设计出员工类和经理类,要求类中提供必要的方法进行属性访问.

员工类 :name  id pay

经理类:继承了员工,并有自己特有的奖金属性  bonus.

class Employee
{
	private String name;
	private int String id;
	private double pay;
	
Employee(String name,String id,double pay)
	{
		this.name=name;
		this.id=id;
		this.pay=pay;
	}
	public abstract  void work();		
}
clss Pro extends Employee
{
	Pro(String name,String id,double pay)
	{
	super(name,id,pay);
	}
	public void work()
	{
		System.out.println("pro work");
	}
}
class Manager extends Employee
{
	private int bonus;
	Manager(String name,String id,double pay,int bonus)
	{
	super(name,id,pay);
	this.bonus=bonus;
	}
	public void work()
	{
	system.out.println("manager work");
	}
}



093_面向对象(模版方法模式)_黑马程序员_Java基础视频

需求:获取一段程序运行的时间.

原理:获取程序开始和结束的时间并相减.


获取时间:system.currentTimeMills();

当代码完成优化后,就可以解决这类问题.

这种方式,模版方法设计模式.

什么是模版方法呢?

在定义功能,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分

那么这时候将不确定的部分暴露出去,由该类的子类去完成.

094_面向对象(接口)_黑马程序员_Java基础视频

095_面向对象(接口2)_黑马程序员_Java基础视频

接口 interface

接口:初期理解,可以认为是一个特殊的抽象类

当抽象类中的方法都是抽象的.那么该类可以通过接口的形式来表示.

class用于定义类

interface 用于定义接口

abstract class用于定义抽象类

接口在定义时,格式特点:

1,接口中常见定义:常量,抽象方法.

2,接口中的成员都有固定修饰符.

常量 public static final

方法: public abstract

记住:接口中的成员都是public的.

接口:是不可以创建对象的,因为有抽象方法.

需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化.

否则子类是一个抽象类.

接口可以被类多实现.也是对多继承不支持的转换形式

新关键字 implements.

interface Inter

{

public static final int NUM=3;

public abstract void show();

}

class Test implements inter 

096_面向对象(接口的特点)_黑马程序员_Java基础视频

接口的特点

接口是对外暴露的规则

接口是程序的功能扩展

接口可以用来多实现

类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口.

接口与接口之间可以有继承关系

097_面向对象(接口举例体现)_黑马程序员_Java基础视频

呵呵~不知道讲啥,先过啦.

098_面向对象(多态-概念)_黑马程序员_Java基础视频

099_面向对象(多态-扩展性)_黑马程序员_Java基础视频

100_面向对象(多态-转型)_黑马程序员_Java基础视频

多态:可以理解为事物存在的多种体现形态.

人 :男人,女人

动物,猫,狗

猫 x=new 猫();

动物 x=new猫();

重载,覆盖,都是函数的多态.

1多态的基本体现

父类的引用指向了自己的子类的对象,

父类的引用也可以接收自己的子类对象

2多态的前提

必须是类与类之间有关系,要么继承,要么实现.

通常还有一个前提:存在覆盖.

3多态好处

多态的出现大大的提高程序的扩展性

多态的弊端

提高了扩展性,但是只能使用父类的引用访问父类中的成员.

4,多态的应用



Animal a =new cat();//类型提升,向上转型


如果想要调用猫的特有方法时,如何操作?

强制将父类的引用转成子类类型.向下转型.

cat c=(cat)a;

千万不要出现这样的操作,就是将父类对象转成子类类型.

我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换

多态自始自终都是子类对象在做着变化.

Animal a=new Animal();

instanceof 实例关键字

if(a instanceof Cat){}



你可能感兴趣的:(黑马程序员JAVA 090---100 小结)