java的多态特性

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);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值