1
继承的语法格式
public class 子类名 extends 父类名{
}
2 继承的规则
A 实现继承的时候 一次只能继承一个类 可以多层继承
B 能继承所有的东西
C 但能调用的东西是
在同一个包的中 访问修饰符为public和protected的属性和方法都能被调用
不同的包中 仅能调用用public修饰的属性和方法。
3 方法的重写的规则
A 在子类中重写父类中的方法 需要访问修饰符大于或等于父类 返回值 名称 参数列表与父类相同。
B 又由于继承调用的局限性 所以还要考虑在重写的时候若是一个包的 那就可以重写受保护的公开的 不是同一个包的 只能重写公开的
C 重写后在调用的话就是子类中重写的方法了
4自动转型
A 必须存在一个继承关系 才能自动转型
B 格式
父类名 父类对象 = new 子类构造方法(参数列表);
C 优缺点
缺点
不能使用子类自定义的方法 只能调用父类中定义的方法(无法判断到底是由哪个子类转型而来)
优点
可以用一个父类接收多个子类 从而只要在方法中以父类对象为形参 可以子类对象而且调用子类中重写的方法
5 多态
多态是由方法重载,方法重写,继承,自动转型等引起的一系列特性。
---------------------任务--------------
--定义一个People类,定义一个Book类,Book类有子类。实现People看不同类型的书籍。
编程思路分析:
定义4个类 people类 book类 book1类 继承book类 main类
people类要写有people的属性 构造方法 还要有一个read方法形参为book类 同时明确它是可以接收它的子类
book类 要写有book的属性 构造方法 还要有一个get函数返回 私有属性
book1类与book相似 注意其get方法是重写的book1中的方法
main类 实例化3个对象 然后people类对象调用read方法传递不同的对象
首先是父类的对象 再是子类对象 完成目的
/**
* 定义一个people类
*
* @author 汤剑男
*
*/
public class People {
// 设置属性
private String name;
// 构造方法
public People(String name) {
this.name = name;
}
// 定义一个read的方法注意形参设置成book父类 以可以用来接收任何子类
public void read(Book b) {
System.out.println(this.name + "正在看" + b.getName());
}
}
/**
* 定义一个Book的父类
*
* @author 汤剑男
*
*/
public class Book {
// 设置属性
private String name;
// 构造方法
public Book(String name) {
this.name = name;
// 定义一个getName的方法放回私有属性name
}
public String getName() {
return this.name;
}
}
/**
* 定义一个JavaBook类继承Book类
*
* @author 汤剑男
*
*/
public class Book1 extends Book {
//定义子类的属性
private String author ;
//定义子类的构造方法
public Book1(String name,String author) {
super(name);
this.author = author;
}
//重写Book父类中的get函数
public String getName() {
return super.getName();
}
}
/**
* 定义一个main类测试向上转型
* @author 汤剑男
*
*/
public class Main1 {
//定义一个主函数
public static void main (String [] args){
//实例化三个对象
People pe = new People("张三");
Book1 b1 = new Book1("语文书","王五");
Book bo = new Book("英语书");
//依次传递父类对象和子类
pe.read(bo);
pe.read(b1);
}
}
分享到:
相关推荐
java 的多态是java的重要的四大特性之一,多态又有多少人真正说的清楚呢?这里有最经典的例子,最生动的最鲜活的例子讲解,相信你一定能学会
前端模块化脚手架,可实现类似java的封装继承多态特性
多态是面向对象编程中的一个重要特性,它允许一个类的引用变量指向多种实际类型。这意味着在运行时,可以调用不同的方法实现不同的功能 多态的实现方式 多态可以通过继承、接口和重写实现。子类继承父类后,可以使用...
它是基于继承、重写和向上转型等特性实现的,多态是面向对象编程的三大特征之一,其他两个分别是封装和继承。 Java 多态包括以下三种方式 方法重写(Override) 子类可以对从父类继承的方法进行重写,以便根据子类的...
Java 面向对象三大特性之封装性的学习
java的多态例子,适合初学者学习java的多态特性
大家可能都知道Java面向对象的三大特性,封装,继承,多态,其中动态绑定就与多态有关,那什么是动态绑定呢? 1.动态绑定(auto binding):也叫后期绑定,在运行时,虚拟机根据具体对象的类型进行绑定,或者说是...
Java——多态 多态的特性 1.可替换性(substitutability)。多态对已存在代码具有可替换性。 例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环, 也同样工作。 2.可扩充性(extensibility)。多态对代码...
内容概要: 本文介绍了Java中多态(Polymorphism)的概念和用法。读者将学习什么是多态,为什么需要多态,以及如何在程序中实现多态。此外,还会讨论多态时的一些注意事项和规则。 能学到什么: 理解多态的定义、...
JAVA 封装、继承、多态 三大特性以及实操
java 继承、多态、向上向下数据转换。
面向对象的三大特性:封装、继承、多态。在这三个特性中,如果没有封装和继承,也不会有多态。 那么多态实现的途径和必要条件是什么呢?以及多态中的重写和重载在JVM中的表现是怎么样? (若文章有不正之处,或难以...
多态性是对象多种表现形式的体现。在面向对象中,最常见的多态发生在使用父类的引用来引用子类的...下面这篇文章主要给大家深入的介绍了Java三大特性中多态的相关资料,有需要的朋友可以参考借鉴,下面来一起看看吧。
栈帧的内部结构 ...3.动态链接 (Dynamic Linking)(或执行"运行时常量池"的方法引用)----深入理解Java多态特性必读!! 4.方法返回地址(Return Adress)(或方法正常退出或者异常退出的定义) 5.一些附加信息
多态是面向对象编程的重要特性,它允许一个接口被多种不同的数据类型实现,增强了代码的灵活性和可扩展性。 多态的实现方式 Java中的多态主要通过继承、接口和重写实现,子类可以覆盖父类的方法,使得在运行时能够...
面向对象三大特征之多态 input可以根据不同的"type"(条件)产生不同形态 生活中的多态 一件事物根据不同的环境条件,产生不同的结果/形态 例如: H2O根据不同的温度条件,产生不同形态 -在标准大气压...
##### 多态概述: 一个事务有多种形态(身份). 在Java中是指一个对象具有多个数据类型.
【完整课程列表】 ... Java基础入门教程 第1章 Java 简介(共31页).ppt Java基础入门教程 第2章 java语言基础(共52页)....Java基础入门教程 第9章 Java的高级特性(共32页).ppt jdk api 1.7.chm JDK_API_1_6_zh_CN.CHM
多态是继封装、继承之后,面向对象的第三大特性。 Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。 Java中多态的代码体现在一...
主要介绍了关于Java三大特性之多态的总结,内容详细,涉及多态的定义,存在条件,好处,分类及实现方式等相关内容,具有一定参考价值,需要的朋友可以了解下。