Java学习(封装继承)

封装

        1.封装:
        1.封装的含义:
            1.包装,例如我们将一些常用的功能进行抽取,将这些功能定义成一个方法。
            2.面向对象特征中的封装:隐藏。对类中的成员对外是否可见进行控制。
        2.封装的概念:
            将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类封装的方法来实现对隐藏信息的访问和操作。(安全性)好处在于:方便添加控制语句,修改实现等
        3.封装案例:
            1.将类中属性私有化
            2.将某些方法私有化
                Java设计模式(固定套路,模板,算法):
                    单例模式:单个实例,在系统中,想让某个类只能创建一个对象。

public class MakeOne {
    static MakeOne makeOne=null;
    //私有化构造方法无法直接调用
    private MakeOne(){

    }
    public static MakeOne getMakeOne(){
        if(makeOne==null){
            makeOne=new MakeOne();
        }
        return makeOne;
    }
    void ready(){
        System.out.println("创建成功");
    }
}

继承

        2.继承:
        1.继承的概念:比如猫和狗,名字和年龄,吃东西的属性行为这些共性进行抽取就不需要在每个类中i当以同样的数行和行为,只需要类与 之间建立继承关系即可。
        2.eg:抽取一个动物类:名字年龄吃东西
            狗类        继承      动物类
                狗看家
            猫类     继承     动物类
                猫捉老鼠
        3.继承的好处:
            1.继承的出现减少了代码冗余,提高复用性。
            2.提高程序功能的扩展性(分别在猫和狗类中维护他们各自特有的属性和行为)
            3.让类与类之间产生了is-a 的关系,为多态的使用提供了前提
            4.什么时候使用继承?
                    猫和狗都是动物,满足什么是什么的关系的时候(is-a)。
            5.子类继承父类之后拥有父类所有的实例变量和方法,但是不能访问私有成员
            6.重写:子类对父类中某个方法重新进行定义,把父类的方法框架拉过来重新写功能。(注:构造方法、静态方法、成员变量不能重写)语法规则子类重写的方法必须和父类重写方法类名相同,参数列表相同,返回值相同
            7.super 关键字:子类关键字,访问父类中定义的那部分成员
                    super.成员变量
                    super.成员方法(常用)当子类中重写了父类方法时,为了区分调用的是父类中还是子类中的重新给方法,使用super调用父类中的。子类构造方法默认会调用父类午餐的构造方法,必须放在第一行,还可以调用父类中的构造方式。

public class Animals {
    static String name;
    static int age;
    static String gender;
    public void eat(){
        System.out.println("吃饭吃饭");
    }
    public void setName(String name){
        this.name=name;
    }
    public void setAge(int age){
        this.age=age;
    }
    public void setGender(String gender){
        this.gender=gender;
    }
    public void getMenu(){
        System.out.println(this.name);
        System.out.println(this.age);
        System.out.println(this.gender);
    }
    public Animals(){
        System.out.println("dou");
    }
}
public class Dog extends Animals {
    public Dog(){
        super();
        System.out.println("dou");
    }

    public void lookbigdoor(){
        System.out.println(this.name+"在看大门");
    }
    //方法重写
    public void eat(){
        System.out.println("狗哥抱着碗吃");
    }

}
public class Gouge extends Dog {
    public void eat(){
        super.eat();
        System.out.println(this.name+"倒立着啃骨头");
    }
    public void lookbigdoor(){
        System.out.println("大门看着"+this.name);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值