• 《java入门第一季》之面向对象(接口收尾)


    通过案例的形式,结束接口部分。

    /*
    	猫狗案例,加入跳高的额外功能
    	
    	分析:从具体到抽象
    		猫:
    			姓名,年龄
    			吃饭,睡觉
    		狗:
    			姓名,年龄
    			吃饭,睡觉
    			
    		由于有共性功能,所以,我们抽取出一个父类:
    		动物:
    			姓名,年龄
    			吃饭();//吃的不一样,定义为抽象方法
    			睡觉(){}
    			
    		猫:继承自动物
    		狗:继承自动物
    		
    		跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口
    		接口:
    			跳高
    			
    		部分猫:实现跳高
    		部分狗:实现跳高
    	实现;
    		从抽象到具体,这个具体意思是实现后都是具体内容
    		
    	使用:
    		使用具体类
    */
    //定义跳高接口
    interface Jumpping {
    	//跳高功能
    	public abstract void jump();
    }
    
    //定义抽象类
    abstract class Animal {
    	//姓名
    	private String name;
    	//年龄
    	private int age;
    	
    	public Animal() {}
    	
    	public Animal(String name,int age) {
    		this.name = name;
    		this.age = age;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public int getAge() {
    		return age;
    	}
    	
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	//吃饭();定义为抽象方法
    	public abstract void eat();
    	
    	//睡觉(){}
    	public void sleep() {
    		System.out.println("睡觉觉了");
    	}
    }
    
    //具体猫类
    
    class Cat extends Animal {//猫不具备跳高功能的猫
    	public Cat(){}
    	
    	public Cat(String name,int age) {
    		super(name,age);
    	}
    	
    	public void eat() {
    		System.out.println("猫吃鱼");
    	}
    }
    
    //具体狗类,同猫
    class Dog extends Animal {
    	public Dog(){}
    	
    	public Dog(String name,int age) {
    		super(name,age);
    	}
    	
    	public void eat() {
    		System.out.println("狗吃肉");
    	}
    }
    
    //有跳高功能的猫,在继承一个类的同时实现接口
    class JumpCat extends Cat implements Jumpping {
    	public JumpCat() {}
    	
    	public JumpCat(String name,int age) {
    		super(name,age);
    	}
    
    	public void jump() {
    		System.out.println("跳高猫");
    	}
    }
    
    //有跳高功能的狗,在继承一个类的同时实现接口
    class JumpDog extends Dog implements Jumpping {
    	public JumpDog() {}
    	
    	public JumpDog(String name,int age) {
    		super(name,age);
    	}
    	public void jump() {//对接口中的抽象进行重写实现
    		System.out.println("跳高狗");
    	}
    }
    
    class InterfaceTest {
    	public static void main(String[] args) {
    		//定义跳高猫并测试
    		Jumpping jum = new JumpCat();//多态的方式实现
    		JumpCat jc = new JumpCat();//自己类对象形式
    		jc.setName("哆啦A梦");
    		jc.setAge(3);
    		System.out.println(jc.getName()+"---"+jc.getAge());
    		jc.eat();
    		jc.sleep();
    		jc.jump();
    		jum.jump();//多态的方式,实现了特殊跳高功能
    		System.out.println("-----------------");
    		
    		JumpCat jc2 = new JumpCat("加菲猫",2);
    		System.out.println(jc2.getName()+"---"+jc2.getAge());
    		jc2.eat();
    		jc2.sleep();
    		jc2.jump();
    		
    		//定义跳高狗
    		Jumpping jum1 = new JumpDog();
    		JumpDog jd = new JumpDog();
    		jd.setAge(4);
    		jd.setName("叶晨");
    		System.out.println(jd.getName()+"-----"+jd.getAge());
    		jd.eat();
    		jd.sleep();
    		jd.jump();
    		jum1.jump();
    		System.out.println("-----------------");
    		
    		JumpDog jd1 = new JumpDog("邱加泺",23);//用自己创建对象。
    		System.out.println(jd1.getAge()+"------"+jd1.getName());
    		jd1.eat();
    		jd1.sleep();
    		jd1.jump();
    	}
    }

    到目前为止,面向对象部分快要结束了。下一篇(http://blog.csdn.net/qq_32059827/article/details/51338014)将会通过一个小案例对面向对象所有内容以案例的形式进行总结。
  • 相关阅读:
    css 超出两行省略号,超出一行省略号
    css 去掉i标签默认斜体样式
    Spring 使用单选按钮
    Spring Maven工程引入css,js
    Sping 补充完成修改功能
    Spring 控制器层如何启用验证?
    Spring 控制器层如何调用DAO层
    spring boot工程如何启用 热启动功能
    Spring 视图层如何显示验证消息提示
    Sping POJO中如何添加验证规则和验证消息提示
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299850.html
Copyright © 2020-2023  润新知