0
点赞
收藏
分享

微信扫一扫

Java oop封装,继承,多态

8052cf60ff5c 2022-04-21 阅读 80
java

封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。



继承:Java中使用extends使一个类与拎一个类建立父子关系,
设计规范:只有子类们的相同特征放在父类中 子类独有的应该放在子类里
继承的特点:子类继承父类的属性与行为,单不继承构造器
* Java是单继承模式,一个类只能继承一个父类
* Java不支持多继承,单支持多层继承,当方法名重复时,使用就近原则
* Java中所用类都是object类的子类
* 子类可以继承父类的私有成员,但不能直接访问,要通过对应的方法
*子类可以继承父类的静态成员,不是继承,知识共享。 仅仅是可以使用(子类.父类中的静态成员)

class 父类 { }

class 子类 extends 父类 { }

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

简单来说就是,同一个类的不同对象的不同行为

public class Test {
    public static void main(String[] args) {
      show(new Cat());  // 以 Cat 对象调用 show 方法
      show(new Dog());  // 以 Dog 对象调用 show 方法
                
      Animal a = new Cat();  // 向上转型  
      a.eat();               // 调用的是 Cat 的 eat
      Cat c = (Cat)a;        // 向下转型  
      c.work();        // 调用的是 Cat 的 work
  }  
            
    public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  
}
 
abstract class Animal {  
    abstract void eat();  
}  
  
class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
  
class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}
吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠
举报

相关推荐

0 条评论