java中访问修饰符 多态

java中的访问修饰符

访问修饰符本类本类其他类(子类)其他类其他包子类
public 公共的
private 私有的×××
default 缺省的 默认的××
protected×

多态
一种类型 多种形态 对象在创建时是父形态 在使用时是子形态
多态在程序设计中 为程序提供了【可插拔性】
你要记得 子类赋值给父类 是自动类型转换 向上转型
你要记得 父类强制转换成子类 需要加子类类型符号 向下转型
多态 形成的必要因素
1:必须有继承关系
2:子类中需要有方法的重写
关键字 instanceof :是否包含子类对象

package pm;
/**
 * 宠物父类
 */
public class Pet {
 private String name;
 private int age;
 private int health;
 private int love;
 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 int getHealth() {
  return health;
 }
 public void setHealth(int health) {
  this.health = health;
 }
 public int getLove() {
  return love;
 }
 public void setLove(int love) {
  this.love = love;
 }
 public Pet(){
  
 }
 public Pet(String name, int age, int health, int love) {
  super();
  this.name = name;
  this.age = age;
  this.health = health;
  this.love = love;
 }
 public void eat(){
  
 }
}
//企鹅类
public class penguin extends Pet{
// 特殊属性
 private String sex;
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public Penguin() {
  super();
 }
 public Penguin(String name, int age, int health, int love, String sex) {
  super(name, age, health, love);
  this.sex = sex;
 }
 //重写自Object中的方法
 public String toString(){
  return"宠物名"+getName()+"\t宠物年龄:"+
 getAge()+"\t健康值"+getHealth()+"\t亲密度:"+getLove()+"\t性别:"+sex;
 }
 //重写自父类的方法
 public void eat() {
  System.out.println("我是企鹅,我吃鱼");
  setHealth(getHealth()+1);
 }
 //子类独有的方法
 public void swimming(){
  System.out.println("我是企鹅,我要游泳,嘎嘎");
  setLove(getLove()+1);
  setHealth(getHealth()-5);
 }
}
public static void main (String[] args){
//多态 一种类型 多种形态

Pet pet = new Penguin("qq",2,85,50,"雌性");
//你记得 子类赋值给父类自动类型转换 向上转型
pet = new Dog("大黄",3,75,85,"黄色");//这里的Dog和企鹅定义的一样
  //你要记得 子类赋值给父类 自动类型转换 向上转型
  pet.eat();
  if(pet instanceof Penguin){
   Penguin pen = (Penguin)pet;// 你记得,父类强制转换成子类,需要加子类类型符号,向下转型。
   pen.swimming();
  }else if(pet instanceof Dog){
   Dog dog2 = (Dog)pet;
   dog2.feipan();
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值