美文网首页
java面向对象

java面向对象

作者: 大神华仔 | 来源:发表于2016-06-21 20:04 被阅读0次
    • 方法重载

    //方法的重载(参数不同即可)
    1.void eat(int ii){ 
        System.out.printf("%s正在吃饭\n",name);
    }
    2.void eat( ){
        System.out.printf("%s正在吃饭\n",name);
    }
    
    • 方法重写

    //父类和子类都有相同的方法 eat()
    class Programmer extends Human{
            void eat(){
        System.out.printf("%s正在吃饭\n",name);
            }
    }  
    class Boss extends Human{
        void eat(){
            System.out.println("---->>" +name+"喜欢吃宵夜和啤酒!");
    }
    
    • 继承父类( 关键字: super、extends)

    super 关键字
    1.用super调用父类的构造方法,对super的调用必须是构造器中的第一个语句.
    2.用super来调用父类的成员(属性,方法)

    //关键字 extends + 类名
    class Programmer extends Human{
    }
    class Programmer extends Human{
    }

    - ###多态
    
    

    //通过父类的接口,利用多态解除同一个父类不同子类之间耦合关系 public
    static void humanEat(Human ref) //参数为父类的定义
    {
    ref.eat();
    }

    
    - ###抽象方法 (关键字:abstract )
     
    

    //父类有未定义的方法
    abstract class Human
    {
    //这个方法没有定义,加关键字 变成抽象方法 该类就变成抽象类也加 abstract
    abstract void eat();
    }

    
    

    注意:静态的属性 先在子类中寻找,如果没有再去父类找。或直接用super.name 调用父类的name

    
    
    
    
    - ##例子##
    
    

    //加上abstract 变成抽象类
    abstract class Human{
    int age;
    boolean gender;
    String name;
    int i= 10;
    //用类名来命名的方法叫构造方法,带参构造方法,构造方法没有返回类型
    public Human(int age,boolean gender,String name){
    System.out.println("有人来了!");
    this.age = age;
    this.gender = gender;
    this.name =name;
    }

    public Human(int c){
    
    }
    //方法的重载(参数不同即可)
    void eat(int ii){   
        System.out.printf("%s正在吃饭\n",name);
    }
    /*
    void eat(){
        System.out.printf("%s正在吃饭\n",name);
    }
    
    void sleep(){
        System.out.printf("%s正在睡觉\n",name); 
    }
    */
    
    //这个方法没有定义,加关键字 变成抽象方法  该类就变成抽象类也加abstract
     abstract void eat();
    

    }

    class Programmer extends Human{
    int money;
    //String name = "aa";
    public Programmer(String name,int age,int money,boolean gender){

        //必须第一个语句
        super(age,gender,name);
    
        this.money = money;
    }
    void eat(){
        System.out.println(name+"喜欢吃宵夜和啤酒!");
    }
    void devElope(){
        System.out.println(name+"不断编写代码,实现梦想!");
        System.out.println(money+" "+age);
    }
    

    }
    class Boss extends Human{
    int money;
    //String name = "aa";
    public Boss(String name,int age,int money,boolean gender){
    super(age,gender,name);
    this.money = money;
    }
    void eat(){
    System.out.println("---->>" +name+"喜欢吃宵夜和啤酒!");
    }
    void requestMoney(){
    System.out.println("老板需要不断获得money,实现梦想!");
    System.out.println(money+" "+age);
    }

    }

    public class Test3{
    //通过父类的接口,利用多态解除同一个父类不同子类之间耦合关系
    public static void humanEat(Human ref){

        ref.eat();
    }
    public static void main(String args[]){
    //Human man= new Human(18,true,"xioaming");
    Programmer man = new Programmer("xiaoming",24,8000,true);
    Boss boss = new Boss("xiaohei",44,15000,true);
    
    
    man.eat();
    man.devElope();
    
    
    boss.eat();
    boss.requestMoney();
    
    humanEat(man);
    humanEat(boss);
        }
    

    }

    相关文章

      网友评论

          本文标题:java面向对象

          本文链接:https://www.haomeiwen.com/subject/hbkgdttx.html