面向对象的继承性和多态性



一.继承性

         继承是面向对象的一个重要的特性,继承性反映的是两个类之间的一种关系。在面向对象的程序设计中,根据已有类派生出新类的这种现象,我们称之为类的继承机制。既当一个类具有另一个类的所有方法和属性时,我们称之为前者继承了后者,这两个类具有继承关系。被继承的类我们通常称为父类或者基类,而继承父类所有属性和方法的类为子类或派生类。

         继承是面向对象编程设计能够提高软件开发效率的重要的原因之一。一个类可以同时派生出多个子类,而这些子类都自动地、隐式的拥有其父类已经定义的属性和行为。这种父类和子类的继承关系,其实就是事物的一般性和特征性的关系,而这种关系恰恰符合了人们对客观事物的认识过程和思维方式。

        Java语言中只支持单继承,即一个子类只继承一个父类。这具有重要的地实际意义。它简化了人们对事物的认识和描述。面向对象程序设计中的继承性是对客观世界的直接反映。通过类的继承能够实现对问题的深入抽象描述,反映了人们认识世界的发展过程。

        继承是通过关键字extends来实现的。

下面是关于继承的例子:

    public class A {
      String s="我是A类!!!";
      public void showA() {
      System.out.println(s);
   }
}

    //创建一个B类,B继承与A
    public class B  extends A{
     String s1="我是B类!!!";
    public void showB(){
    System.out.println(s1);
  }
   public static void main(String[] args) {
   B s1=new B();
   s1.showB();
   s1.showA();
  }
}

二.多态

        面向对象的另一重要特性:多态。多态是指应用程序中出现的“重名”现象。多态中允许以统一的风格编写程序,已处理种类繁多的已存在的类及其相关类。这样既降低了维护的难度,又节省了时间 。

        在Java语言中,多态性主要表现在以下几个方面:

        1.方法重载。方法重载通常是指在同一个类中,相同的方法名对应着不同的方法实现,这些 相同方法名的方法其区别在于方法所需要的参数不同。即采用不同的方法形参表,区分重载方法要求形参在数据类型、个数和顺序不同。

    方法重载的例子:

public class TestPolymorphism1 {
         Sring s="这是方法重载的示例";
         String ss="这是类TestPolymorphism1";
         public void show(){
                System.out.println(ss);
         }
         public void show(String str){
                System.out.println(s);
}
 public static void main(String[] args) {
  TestPolymorphism1 test=new TestPolymorphism1();
  test.show();
  test.show(test.s);
 }
}

2.方法重写。方法重写主要应用与父类和子类之间。子类重写父类的方法,只是对应得方法实现不同,其方法名与所需的参数都相同。

    方法重写的例子:

//定义类TestPolymorphism1,让其继承于类A;
public class TestPolymorphism2 extends A {
 String p="这是方法重写的示例!!!";
 public void showA() {
  super.showA(); 
  System.out.println(p);
 }
 public static void main(String[] args) {
  TestPolymorphism2 test=new TestPolymorphism2();
  test.showA();
 }

}

3.抽象类。在Java中,一个类中的方法只给出了标准,而没有给出具体的实施流程,这样的类称为抽象类。抽象类是不能被实例化对象的。父类往往会被定义成抽象类。只给出标准而没有给出具体实施方法成为抽象方法。

4.接口。在多态机制中,接口比抽象类使用起来更为方便。由抽象方法组成的集合就是接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值