Java基础一(继承和多态)
2017-03-18 10:43
330 查看
Java中类只有单继承(子类无法继承父类的构造方法),不同于C++中多继承,一个子类只能有一个父类。多继承会让Java整体结构变得混乱。
Java中实现接口方法实现多继承、多态。
继承第二个特性:重写 Vs 重载:
重写(override):子类对父类的方法的覆盖,对此有之下要求:
1).子类必须与重写方法具有相同的方法名称,相同参数列表和返回值类型;如果子类值参数列表不同于父类即使两者有相同的函数名称,只能算作是新的方法。
2)子类方法不能够缩小父类的访问权限,但是可以扩大权限:
父类 用public方法,子类不能用protect或者private修饰重写方法,但是父类protect方法,子类可以用public方法; 如果想访问父类方法
使用关键字 super
重载:一个方法名称有多个方法,构造函数重载(overload)有不同的参数列表。
多态:通过指向父类的指针,调用不同子类中实现的方法 ,Java自动判断引用不同子类。
package ExtendsDemo; /*使用多态*/ public class Anmial { String name; int age; //访问内部数据的方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //动物叫声 public void cry() { System.out .println("动物会叫"); } public static void main(String[] args) { // TODO Auto-generated method stub Cat cat=new Cat(); cat.cry(); Dog dog=new Dog(); dog.cry(); /********出现多态情况************/ Anmial an=new Cat();
// Cat 属于Anmial父类一个子类,这里new开辟一个对象没有问题 //通过指向父类调用不同子类方法 an.cry(); an=new Dog(); an.cry(); } } class Cat extends Anmial { public void cry() { System.out.println("Cat cry"); } } class Dog extends Anmial { public void cry() { System.out.println("Dog cry"); } }
结果输出:
Cat cry Dog cry Cat cry Dog cry
事实上,在一些实际过程中出现将子类强制转换成父类,子孙类必须要拥有父类的所有的方法,同时子类比父类更加的详细,所以子类转换成父类是可以的,但是不能够让父类转换成子类。
相关文章推荐
- 黑马程序员Java基础之多态与继承、覆盖与重载
- java基础回顾---封装继承多态
- 黑马程序员 Java基础<二>---> 继承、内部类与多态,包
- java基础三大特性——封装、继承与多态
- [置顶] java基础之【继承--->多态】内存图
- 黑马程序员_java基础-封装继承多态
- Java基础<六>---> 面向对象与java特性(封装、继承、多态
- Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示
- java基础三大特性——封装、继承与多态
- JAVA基础必备(九)——继承,封装,多态,抽象类,接口
- 黑马程序员---java基础之面向对象(一)三大特征(封装,继承,多态)
- 【Java学习笔记】基础知识学习10【继承与多态】
- java基础 ---继承和多态
- Java基础-面向对象(封装、继承、多态)
- Java 基础一些代码练习笔记(继承+接口+多态)
- Java基础--继承和多态
- java基础知识2--抽象 多态,继承等
- 黑马程序员_毕向东JAVA基础_面向对象(封装&继承&多态)
- Java基础知识——继承和多态
- java基础三大特性——封装、继承与多态