java中继承和多态区别?

Python011

java中继承和多态区别?,第1张

总的来说:编译时看父类,运行时看子类

继承,子类继承父类中所以的属性和方法,但是对于private的属相和方法,由于这个是父类的隐私,所以子类虽然是继承了,但是没有可以访问这些属性和方法的引用,所以相当于没有继承到。很多时候,可以理解为,没有继承。

多态:就是父类引用可以持有子类对象。这时候只能调用父类中的方法,而子类中特有方法是无法访问的,因为这个时候(编译时)你把他看作父类对象的原因,但是到了运行的时候,编译器就会发现这个父类引用中原来是一个子类的对像,所以如果父类和子类中有相同的方法时,调用的会是子类中的方法,而不是父类的。

一、继承通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。

已有的称为父类,新的类称为子类(父类派生子类,子类继承父类)。

(1)继承的优点:  ①代码的可重用性;  ②父类的属性的方法可用于子类;  ③子类可扩展父类的属性和方法;  ④设计应用程序变得更加简单。

(2)关键字“isa”用于判断父类和子类的继承关系是否正确。

(3)Java中继承的实现:  public class 子类extends 父类{}(4)继承的单根性:在Java中一个类只能有一个父类;传递性:一个Java类可以父类,父类也可以有父类。

(5)所有类的根类:  Object类,又叫基类或超类。

  Object类是每个Java类的父类,要么是直接的父类,要么就是间接的父类。

Object类中的三个重要方法:①public boolean equals(Objectx):检测两个对象是否相等。

该方法经常被重写。

若两个对象通过该方法判断是相等的,那么两个对象的hashCode()方法应该产生相同的哈希码②public String toString:该方法返回对象的字符串表示。

用字符串来表示对象有助于调试或测试。

③protected void finalize() throws Throwale:该方法在对象将要被垃圾回收时调用。

(6)方法重写:子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。

该行为方法生在子类中,对父类方法重写。

子类重写父类方法时,浙江北大青鸟http://www.kmbdqn.cn/认为必须遵循如下规则:①子类的方法的返回值类型、方法名和形式参数列表必须和父类中的是相同的;②访问修饰符必须不小于父类中的访问修饰符;③子类中重写抛出的异常不能比父类中抛出的异常多。