2021-06-15

Posted 二十的十七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-06-15相关的知识,希望对你有一定的参考价值。

第三章 继承与多态

3.3 Java中的多态

1 知识要点
多态的定义与使用
多态:字面上解释其实就是一个事物的多种形态。
Java中的方法,对象也都有多态的体现。
Java中的多态有两种体现,方法的重载和重写。
多态:同一个调用,作用于不同的对象,执行的功能不同。
println方法是JDK中自带的方法,用于向控制台输出信息,可以接收多种类型参数数据。
同一个调用执行的功能不同
System.out.println(123);
System.out.println(“123”);
System.out.println(true);
2.父类中的方法
将子类具体的方法抽离到父类中,父类无法确定功能实现,所以这里空着,后期有抽象的方法可以解决。
3. 父类引用指向子类对象
父类指代的范围更大,所以父类引用名可以指向具体的子类对象。
4. 注意事项
父类引用可以指向子类对象,但是不能用子类指用父类。

多态应用

package com.test;

public class Figure 
public String name;
public void attack() 
	

public void run() 
	System.out.println("英雄在奔跑");


package com.test;

public class Warrior extends Figure
public void attack() 
	System.out.println(this.name+"正在进行物理攻击");


package com.test;

public class Master extends Figure
public void attack() 
	System.out.println(this.name+"正在进行魔法攻击");


package com.test;

public class Test1 

	public static void main(String[] args) 
		// TODO Auto-generated method stub
		 Figure f1=new Warrior();
       f1.name="德玛西亚";
       f1.attack();
       Figure f2=new Warrior();
       f2.name="诡术妖姬";
       f2.attack();
	





3.4 Java中的重载和重写

  1. 方法重载是指在同一个类中同名不同参的方法,就是方法的名称相同,但是参数的个数和类型它不一样。
    2.方法的重载
    同一个类中,方法名相同,但是参数不同的方法称为方法的重载。
    3.注意事项
    这里的三个方法名虽然名称相同,但是参数不,第一个无参,第二个一个int参数,第三个两个参数,所以调用的时候可以通过具体的值类型进行区分。
    4.这样的方法和返回类型和修饰符是没有任何类型的。
    5.方法的重载是在同一个类的中,方法的重写则是在父类和子类这种父子关系中产生。
    6.方法的重写
    在子类中,对所继承父类中的方法进行重写,要求返回类型,方法名,参数列表都一致,且访问修饰符不能降低。
    7.重写和重载最大的区别就是重写是子类和父类之间发生的这种关系,而重载只是同一个父类中。
    8.知识要点
    重载和方法重写的区别:
    重载关注的是同一个类中方法名相同,参数不同的放法。调用的时候虽然方法名相同,但是根据的参数进行区分,从而执行不同的方法体。
    重写是发生在父类中,子类对父类方法的重新实现,要求方法返回值,方法名,方法参数都要相同,重写的方法访问修饰符要大于等于父类的方法的访问修饰符。
    9.多态除了体现在方法上之外,比如父类引用指向子类对象也属于多态的体现。

重载应用

package com.test;

public class Book 
public float getPrice() 
	return 100;
	

public float getPrice(int page) 
	return (float)(page*0.1);

public float getPrice(int page,float discount) 
	return (float)(page*discount);


package com.test;

public class Test2 

	public static void main(String[] args) 
		// TODO Auto-generated method stub
		Book bk=new Book();
		System.out.println("默认的价格是:"+bk.getPrice());
		System.out.println("按图书页数计算价格是:"+bk.getPrice(600));
		System.out.println("按图书页数和折扣计算价格是:"+bk.getPrice(600, 0.9f));
		
	




重写的应用

package com.test;

public class Bird 
public void fly() 
	System.out.println("我在蓝天白云间自由的飞翔");


package com.test;

public class Ostrich extends Bird
public void fly() 
	System.out.println("我只能在地上拍拍翅膀奔跑");

public void prey() 
	super.fly();
	System.out.println("执行捕食方法功能");


package com.test;

public class Test4 

	public static void main(String[] args) 
		// TODO Auto-generated method stub
		Ostrich os=new Ostrich();
		os.fly();
		os.prey();
	



以上是关于2021-06-15的主要内容,如果未能解决你的问题,请参考以下文章

2021-06-15目标股

2021-06-15:返回一个二维数组中,子矩阵最大累加和。

2021-06-15

2021-06-15

2021-06-15

2021-06-15