第七章总结

本文介绍了Java中的类继承,包括如何使用`extends`关键字以及Object类作为所有类的基础。还讨论了对象类型转换,如向上转型和向下转型的概念。接着讲解了方法重载,展示了不同参数列表的同名方法如何共存。此外,提到了final关键字的用途,以及instanceof用于检查对象类型的用法。最后,文章探讨了多态性及其在代码扩展性中的作用,以及抽象类和接口在实现多态中的角色。
摘要由CSDN通过智能技术生成

类的继承:

在java中,一个类继承另一个类需要使用关键字extends,关键字extends的使用方法

class Child extendes Parend {}

类的继承代码

718d52c03b87485fba7e3a27929bf1e0.png

 

 运行结果

 

329d7cd7ca5d4f17849933de856adc90.png

Object类 :

object类是比较特殊的类,它是所有类的父类,是java类中的最高层,用户创建一个类时,除非已经指定要从其它类继承,否则他就是从java.lang.object类继承而来的,Java语言中每个类都源于Java,lang,object类

代码

94a48f7ca05f4ae186fff488de1e9031.png

 执行结果

a404a0b4bf2d4c7a9ac0313862348e22.png

 

对象类型转换:向上转换,向下转换

向上转型:

子类对象赋值给父类应用

Animal a=new Dog();

自动类型转换

 

向下转型:

父类对象赋值给子类应用

Dog a=(Dog)new Animal();

强制类型转换

代码691752e9c98243f4aa37ca38505a6729.png

 方法重载:

就是在同一个类中允许存在一个或一个人以上的同名方法,只要这些方法的参数个数或类型不同即可

返回值 方法名(参数数据数据类型....参数名称)

 

代码        

package cast;

public class OverLoadTest2 {
			public static int add(int a,int b) {
				return a+b;}
			public static double add(double a,double b) {
				return a+b;}
			public static int add(int a) {
				return a;
	}
			public static int add(int a,double b) {
				return a;
			}
			public static int add(double a,int b) {
				return b;
			}
			public static int add(int...a){//定义不定长参数方法
				int s=0;
				for(int i=0;i<a.length;i++) {//根据参数个数做循环操作
					s+=a[i];//将每个参数累加
					
				}//将计算结果返回
				return s;
			}
			public static void main(String[] args) {
				// TODO Auto-generated method stub
			System.out.println("调用add(int,int方法·:"+ add(1,2));
			System.out.println("调用add(double,double方法·:"+ add(2.1,3.3));
			System.out.println("调用add(int)方法:"+add(1));
			System.out.println("调用add(int,double方法·:"+add(5,8.0));
			System.out.println("调用add(double,int方法·:"+add(5.0,8));	
			
			//调用不定参数方法
			System.out.println("调用不定参数方法:"+add(1,2,3,4,5,6,7,8,9));
			System.out.println("调用不定参数方法"+add(1));
			
			
}
			}

运行结果

0a27c0e5400c43779ea7864bdb60a946.png

final变量:


final关键字可用于变量声明,一旦该变量被设定,就不可以改变该变量的值通常,由final定义的变量为常量,

final double PI=3.14;

private final void test(){
...//省略一些程序代码}

final 类名{}

final修饰变量———不能被改变
final修饰方法———不能被重写
final修饰类————不能被继承

代码

eb906a0424ca4e3884f6946deffa641a.png

 

instanceof关键字:myobject instanceof ExampleClass

当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生异常,所以在执行向下转型的时候炫耀养成一个良好的习惯,就是判断父类对象是否为子类对象的实例这个判断通常使用instanceof来完成,也可以用它来判断一个实例对象是否属于一个类。

 

代码 c544300803c74dea9b7f3af04cdc64a7.png

多态:

 

利用多态可以使程序具有良好扩展性,并可以对所有类对象进行通用处理。假如现在要编写一个绘制图形方法draw(),如果传入正方型对象就绘制正方形,如果传入圆形对象那个就给绘制圆形,这种场景可以用场景来实现

public void draw(Square s){}//绘制正方形图形

public void draw(ciecular c){}//绘制圆形图形

代码3db0b38202f54341808e1aa1d440ed24.png

结果f2e9c38634e34641b03d120050d628f8.png

 

抽象类:

抽象方法:
修饰符 abstract 返回参数 方法名 (传入参数);
抽象类:
由抽象方法的类一定是抽象类
修饰符 abstract class 类名{
}


接口·:接口是抽象类的yansheng

接口:
所有方法都是抽象方法
修饰符 interface 接口名 {
}

实现implements

Java语言每个类可以实现多个接口
修饰符 calss 类名  implements 接口1,接口2,...{
}

package hello;
interface Paintable{//可绘制接口
    public void draw();//绘制抽象方法
}

class Quadrangle{//四边形
    public void doAnything() {
        System.out.println("四边形提供的方法");
    }
    }

        class Parallelogram extends Quadrangle implements Paintable{
            public void draw() {
                System.out.println("绘制平行四边形");
            }
            }
        
        class Square extends Quadrangle implements Paintable{
            public void draw() {
                System.out.println("绘制正方形");
            }
            }
        
    class Circular implements Paintable{
        public void draw() {
            System.out.println("绘制园形");
        }
        }
            
public class Demo7 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
Square s=new Square();
s.draw();
s.doAnything();
Parallelogram p=new Parallelogram();
p.draw();
p.doAnything();
Circular c=new Circular();
c.draw();}
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值