您的位置:首页 > 其它

调用系统的照相功能

2013-03-28 22:54 134 查看
 
多态:对象在运行中的多种形态。

多态的代码体现:1.继承或实现了类的接口   2.重写了父类的方法  3.父类引用或接口指向子类对象

子类只能重写父类的实例方法:

public  static 静态方法 构造函数  属性都不能重写

图例:



/* 面向对象思想定义小动物属性 */

abstract class  Animal{ //注意abstract要写在class前面
public abstract void shout();
public abstract void work();  //如果这里没有第二个方法,则要用到最后的判断语句进行判断
}

class Dog extends Animal{
public void shout(){
System.out.println("汪汪");
}
public void work(){  //复写父类方法
System.out.println("看家");
}
}

class Cat extends Animal{
public void shout(){
System.out.println("喵喵");
}
public void work(){ //复写父类方法
System.out.println("抓老鼠");
}
public void eat(){
System.out.println("吃鱼");
}
}

class AnimalDo{  //新建函数包含了shout和work方法,提高代码复用性
public void Do(Animal a){  //括号里父类引用指向子类对象
a.shout();
a.work();
}
}
class Demo11{
public static void main(String[] args){
AnimalDo ad = new AnimalDo();
ad.Do(new Dog());
ad.Do(new Cat());
Cat c = new Cat();

//function(new Dog());//匿名对象调用函数
}
}
/*
当父类方法不完整时,用以下函数判断
public static void function(Animal a){
a.shout();
if (a instanceof Cat){
Cat c=(Cat)a;
c.work();
}
else if (a instanceof Dog){
Dog d =(Dog)a;
d.kanjia();
}
} */


 

 7. 主板和USB 接口之间的案例 (********)
   |-- 接口引用指向子类对象,实现主板功能的扩展

/*
主板的实例
1. 描述主板
开机,使用USB设备
2. 描述USB接口
定义2个功能,规则
读取数据,写入数据

3. 描述网卡,网卡接入USB接口上
网卡实现USB接口
*/
interface USB{
public abstract void read();
public abstract void write();//定义接口的2个功能
}

class Print implements USB{
public void read(){
System.out.println("读取打印机数据");
}

public void write(){
System.out.println("写入打印机数据"); //覆写接口的2个方法,使子类实例化
}
}
class Iphone implements USB{
public void read(){
System.out.println("读取苹果5数据");
}

public void write(){
System.out.println("写入苹果5数据");//覆写接口的2个方法,使子类实例化
}
}
class NetCard implements USB{
public  void read(){
System.out.println("读取网卡数据");
}
public  void write(){
System.out.println("写入网卡数据");//覆写接口的2个方法,使子类实例化
}
}
class MainBoard{ //建立功能函数提高代码的复用性
public void openPower()
{
System.out.println("开机了");
}
/*
使用USB设备,但是什么设备,先期我是不知道
参数,只能写成USB 接口
*/
public void useUSB(USB u)//父类引用指向子类对象
// USB u = new NetCard();
// USB u = new Print();
// USB u = null
{
if(null == u)      //如果u的值为空
{
System.out.println("没有设备");
return ; //这里if为判断语句,当u值为空时用return跳出
}
else  //如果不为空
u.read();
u.write();//调用2个方法
}
}
class  Computer
{
public static void main(String[] args)
{
MainBoard mb = new MainBoard();//建立对象
mb.openPower();
mb.useUSB(null);
mb.useUSB(new NetCard()); //匿名对象调用一次,不是只能调用一次
mb.useUSB(new Print());
mb.useUSB(new Iphone());

}
}


 8. 数据库中的开发体验,多态(*********)

 9. 多态中,子父类中成员变量,成员函数,静态成员函数,静态成员变量的特点

   |-- 非静态成员函数,编译看左边,运行看右边

   |-- 其他情况,编译看左边,运行看左边

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: