码迷,mamicode.com
首页 > 其他好文 > 详细

OO面向对象——多态

时间:2020-04-09 00:36:24      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:引用类型   面向对象   extend   不同   联系   var   技术   类型   ima   

 

多态

  • 动态编译:可扩展性

  • 及同一种方法可以根据发送对象的不同而采用不同的行为方式

  • 一个对象的实际类型是确定的,但是指向对象的引用类型有很多

public class person {
   public void run(){
       System.out.println("run");
  }
}
public class Student extends person{
   @Override
   public void run() {
       System.out.println("mo");
  }
}
public class Test {
   public static void main(String[] args) {
       person a = new Student();
       Student b = new Student();
       a.run();
       b.run();
  }
}
技术图片

 

子类重写父类的方法后,创建的对象无论时父类的引用还是子类的引用。都会执行子类的重写后的方法。

public class person {
   public void run(){
       System.out.println("run");
  }
?
   public void say(){
       System.out.println("say");
  }
}
public class Student extends person{
   @Override

   public void run() {
       System.out.println("mo");
  }
}
public class Test {
   public static void main(String[] args) {
       person a = new Student();
       Student b = new Student();
       a.run();
       b.run();
       b.say();
       a.say();
  }
}
技术图片

子类不重写父类的方法,会继承父类的逻辑。子类使用的方法是自己的或者继承父类的。

父类型可以指向指向子类,但是不能调用子类独有的方法。

对象可以执行哪些方法看左边的引用类型,和右边无关。

  • 多态的注意事项

    1.多态是方法的多态,属性没有多态。

    2.父类和子类有联系,可以进行转换

    3.多态存在条件:继承关系,方法需要重写,父类引用指向子类对象。

    不能重写的方法:static修饰的方法、final修饰的方法、private修饰的方法

     public final void teach(){
           System.out.println("111");
    }
技术图片

 

    public static void teach(){}

技术图片

静态方法属于类 ,应使用类名+方法,因为超类和子类类名不同,同名的静态方法完全没有关系。

 

 

 

 

 

 

 

 

OO面向对象——多态

标签:引用类型   面向对象   extend   不同   联系   var   技术   类型   ima   

原文地址:https://www.cnblogs.com/xianxiansir/p/12663835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!