封装、继承以及多态

1、封装

(一)基本概念:在一个类中,将属性私有化,并创建setter and getter方法来对外提供接口。

                set方法:给属性赋值

                      语法:[修饰符列表]  void set属性名(属性名第一个字母大写)(形参){ 方法体;}

                get方法:读取属性值

                       语法:[修饰符列表] 返回值类型  get属性名(属性第一个字母大写) ()(return 属性;)

public class Test{
    public static void main(String[] args){
           
           //创建对象
           User u1=new User;

           //通过"引用."来调用get方法
           u1.getName();

           //通过"引用."来调用set方法,同时给属性赋值
           u1.setName("张三");
    }
}

class User{

    //属性私有化
    private String name;

    //set方法
    public void setName(String name){
        this.name=name;         
    }    

    //get方法
    public String getName(){
        return name;
    }

    //创建无参构造方法,用来创建对象和给属性赋值
    public User(){}
    
}

                    

2、继承

        (一)基本概念:凡是满足“A类名 is a B类名”,并且A类和B类中有相同的代码,就可以使用继承,其中A类称为父类,B类称为子类。

          (二)  继承的作用:子类继承父类中所有的方法

//满足Cat is a Animal
//其中Animal为父类,Cat为子类
class Aniaml{
     public void doSome(){}   
 }

class Cat extends Animal{}

          (三)方法覆盖:当父类中的方法不能满足子类时,在子类中使用方法覆盖。

            满足使用方法覆盖的条件:1、具有继承关系

                                                       2、方法名,返回值,形参都相同

                                                       3、访问权限不能更低

                                                       4、子类抛出异常不能更多

class Animal{
     public void doSome(){
        System.out.println("动物们喜欢玩耍");
    }   
}

class Cat extends Animal{
    public void doSome(){
        System.out.println("小猫喜欢吃吃鱼");
    }
}

3、多态:

   (一)概念:多种形态,编译和运行时有两种不同的状态。

                                           编译期叫做静态绑定。

                                           运行期叫做动态绑定。

     (二)  基础语法:向上转型:子类转成父类(upcasting)

                                                   Animal a=new Cat();

                               向下转型:父类转成子类(downcasting)

                                                   Cat c=(Cat) a;  

    (三)注意:1、不管向上转型还是向下转型,都必须具有继承关系。

                     2、向下转型必须发生在向上转型之后,有了向上转型才有向下转型。

public class Test{
    public static void main(String[] args){
        Animal animal=new Cat();
        Cat c=(Cat) animal;
    }    
}

class Animal{
    public void doSome(){
        System.out.println("动物喜欢玩耍");
    }
}

class Cat extends Animal{
    public void doSome(){
       System.out.println("猫咪喜欢吃鱼");
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值