java学习第五天

多态:
父类的对象调用子类的方法(类型的转换):利用一种引用管理多个对象。
一个引用在不同情况下的多装状态、

package com.java.Demo;

/**
 * Created by jerry on 2017/3/31.
 */
public class Demo1 {
    public static void main(String [] args){
Master master=new Master();
master.feed(new Dog(),new Bone());
master.feed(new Cat(),new Fish());
    }
}
class Food{
    String name;
    public void showName(){

    }
}
class Fish extends Food{
    public void showName(){
System.out.println("鱼");
    }
}
class Bone extends Food{
    public void showName(){
System.out.println("骨头");
    }
}
//主人类
class Master{
  //给动物喂食物,使用多态,方法就可以使用一个
    public void feed(Animal an, Food f){
an.eat();
f.showName();
    }

}

class Animal{
    public void cry(){
        System.out.println("not know how to cry");

    }
    public void eat (){
        System.out.println("no know what to eat");
    }
}
class Dog extends Animal{
    public void cry(){
        System.out.println("汪汪叫");
    }
    public void eat(){
        System.out.println("狗爱吃");
    }
}
class Cat extends Animal{
    public void cry(){
        System.out.println("喵喵叫");
    }
    public void eat(){
        System.out.println("猫爱吃");
    }
}

抽象类,接口,
当父类的一些方法不能确定是,可以用abstract关键字来修饰方法【抽象方法】,用abstract修饰该类。
抽象类不能实例化。(与多态矛盾?)
抽象类可以没有抽象方法
抽象方法不能有主体

接口:
原则:
接口不能被实例化
接口所有的方法都不能有主体(抽象类是命名为abstract的不能有主体)
一个类可以有多个接口
实现接口可以看做是对继承的一种补充。
类是层级式的,不太灵活。

实现接口vs继承父类
单继承
多接口

package com.java.Demo;



/**
 * Created by jerry on 2017/3/31.
 */

interface Fish{
    public void swimming();
}
interface Bird{
    public void fly();
}
class Monkey{
    int name;
    //跳
    public void jump(){
        System.out.println("猴子会跳!");
    }
}
//小猴子继承猴子的特性但是他也想像鱼一样会游泳
class LittleMonkey extends Monkey implements Fish,Bird{
    public void swimming(){
System.out.println("猴子会游泳");
    }
    public void fly(){

    }
}

public class Demo3 {
    public static void main(String [] args){

    }
}

final概念:
可以修饰变量或者方法
1,当不希望父类的某个方法或者变量被覆盖。

package com.java.Demo;

/**
 * Created by jerry on 2017/3/31.
 */
public class Demo1 {
    public static void main(String []args){

    }
}

class Aaa{
   final int a=0;//若果不给初值,a的值是多少
    final public void fun(){
        System.out.println("this is dun");
    }
}
class Bbb extends Aaa{
    public void show(){
        a++;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值