zoukankan      html  css  js  c++  java
  • java三大特性(封装、继承、多态)

    oop(面向对象程序设计)具有三大特性:封装、继承、多态

    一、封装

      封装就是讲类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类的实现隐藏信息的操作和访问。

      实现封装

        1、需要修改属性的访问控制符(private)

        2、创建getter/setter方法(用于属性读写)

        3、在getter/setter方法中加入属性控制语句(用于判断属性值的合法性)

    public class Student{
        private  String name;
        public void setName(String name){
            this.name=name;
        }
        public String getName(){
            return name;    
        }
        

    二、继承

      继承是类与类的一种关系,比如说,狗属于动物。可以看成狗类继承了动物类,那么狗类就是动物类的子类(派生类),动物类就是狗类的父类(基类)。在Java中一个子类只能有一个父类。

    //父类:动物类
    public class Animal{
        public int age;
        public String name;
        public void eat(){
            System.out.println("动物具有吃东西的本领!");
        }
    }
    //子类:狗类
    public class Dog extends Animal {
        
    }

    三、 多态

    多态指的是对象的多种形态。多态有两种:引用多态和方法多态。继承是多态的实现基础。

    1.引用多态

    父类的引用可以指向本类的对象;父类的引用可以指向子类的对象。

    //父类:动物类
    public class Animal{
        public int age;
        public String name;
        public void eat(){
            System.out.println("动物具有吃东西的本领!");
        }
    }
    //子类:狗类
    public class Dog extends Animal {
        
    }
    //测试类
    public class Test{
        public static void main(String[] args) {
        //父类的引用可以指向本类的对象
        Animal ani1 = new Animal();
        //父类的引用可以指向子类的对象
        Animal ani2 = new Dog();    
        } 
    }

    2. 方法多态

    创建父类对象时,调用的方法为父类方法;

    创建子类对象时,调用的方法是子类重写的方法或继承自父类的方法;

    不允许通过父类的引用调用子类独有的方法。 

    //父类:动物类
    public class Animal{
        public int age;
        public String name;
        public void eat(){
            System.out.println("动物具有吃东西的本领!");
        }
    }
    //子类:狗类
    public class Dog extends Animal {
        public void eat(){
            System.out.println("狗是吃肉的。");
        }
    }
    //测试类
    public class Test{
        public static void main(String[] args) {
        //父类的引用可以指向本类的对象
        Animal ani1 = new Animal();
        //父类的引用可以指向子类的对象
        Animal ani2 = new Dog();
        //输出动物具有吃的本领
        ani1.eat();    
        //输出狗是吃肉的
        ani2.eat();
        } 
    }
  • 相关阅读:
    Spring Cloud Bus 消息总线介绍
    工商银行分布式服务 C10K 场景解决方案
    关于写好文章的3个心法和5点技巧
    混合云K8s容器化应用弹性伸缩实战
    云原生下的灰度体系建设
    被解救的代码
    【2020-10-22】我是否一个真正靠谱的人
    【2020-10-21】以谦虚与忍耐去期待豁然与贯通
    【2020-10-20】压力也是一种感受,用心体会
    【2020-10-19】不断试错的过程
  • 原文地址:https://www.cnblogs.com/weibanggang/p/10056623.html
Copyright © 2011-2022 走看看