JAVA学习笔记-面向对象的三大特征

Java继承与多态详解
本文详细介绍了Java中的继承和多态概念,包括继承的基本语法、封装的重要性及其实践方法,并深入探讨了多态性的实现原理及好处。通过具体的代码示例,展示了不同类型的动物对象如何利用继承和多态特性来实现灵活的行为表现。

继承:

package Study;

public class TestAnimal {
  int eys = 2;

  public void run(){
    System.out.println("我可以跑");
  }
  public void eat(){
    System.out.println("我可以吃");
  }
  public void sleep(){
    System.out.println("我可以睡");
  }
}

class dog extends TestAnimal{
  public void jiao(){
    System.out.println("我可以叫");
  }
}

class bird extends TestAnimal{
  public void run(){
    System.out.println("我可以飞");
  }
}

封装/隐藏:

-为什么需要封装?封装的作用和含义?

  ·我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?

  ·我要开车,...

-隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性,可维护性。

-我们程序设计要追求"高内聚,低耦合"

  ·高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;

  ·低耦合:仅暴露少量的方法给外部使用。

封装要点:

-类的属性的处理:

  1.一般使用private.(除非本属性确定会让子类继承)

  2.提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读取操作。(注意:boolean变量的get方法是用:is开头!)

-一些只用本类的辅助性方法可以用private,

  希望其他类调用的方法用public

多态:

 多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。

java中如何实现多态?使用多态的好处?

引用变量的两种类型:

  ·编译时类型(模糊一点,一般是一个父类)

    由声明时的类型决定。

  ·运行时类型(运行时,具体是哪个子类就是哪个子类)

    由实际对应的对象类型决定。

多态的存在要有3个必要条件:

要有继承,要有方法重写,父类引用指向子类对象。

instanceof运算符

它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用来判断继承中的子类的实例是否为父类的实现。

 

例子:

 

package Study;

 

public class TestPolymorphism {
  String str = "123";
public void voice(){
  System.out.println("普通动物的叫声");
}

public static void TestVoice(TestPolymorphism a){
  if( a instanceof catcat){
    ((catcat) a).catchMouse();
  }

  a.voice();

}

public static void main(String[] args){
  TestPolymorphism a = new catcat();
  TestVoice(a);
}
}

 

class dogdog extends TestPolymorphism {
  public void voice(){
    System.out.println("我是一只小狗,汪汪汪~");
  }
}

 

class catcat extends TestPolymorphism{
  public void voice(){
    System.out.println("我是一只小猫,喵喵喵~");
  }
  public void catchMouse(){
  System.out.println("抓老鼠");
  }
}

 

class pigpig extends TestPolymorphism{
  public void voice(){
    System.out.println("我是一只小猪,哼哼哼~");
  }
}

 

转载于:https://www.cnblogs.com/iamAnonymous/p/6046129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值