⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.4.txt

📁 java学习的点滴
💻 TXT
字号:
1.类型转换
public class A1
{
	public static void main(String [] args)
	{
	    int i=1;
	    long lo=1L;
	    lo=i;        //自动转换
	    i=(int) lo;  //强制转换(可能数据丢失,不建议使用)
	}
}


2.继承extends

(1)格式:修饰符 class 子类名 extends 父类

例:public class OldCat {          //创建一个类,它有一个方法
    
        	public void catchMouse() {           
        
        	System.out.println("捉到一只老鼠");
    	}
        }
----------------------------
public class LittleCat extends OldCat {       //创建一个类,它继承了OldCat类

}

我们可以做一个测试类,创建一个LittleCat对象,它可以调用父类中的方法,也就是说在父类中的成员或方法,子类可以直接使用.


(2)修饰符在继承中的使用范围

但也有例外,下面我通过例子来测试一下有哪些情况下不能使用。

在同个包中:
public class Father {                           //创建一个类
    
    public int money = 10000;              //定义了一个public 的数据成员
    
    protected int friends = 5;              //定义了一个protected 的数据成员
    
    String pet    = "Dog";                     //定义了一个default  的数据成员
    
    private  int shoes = 2;                    //定义了一个private 的数据成员
    

}
------------------------------
public class Child  extends Father{          //定义一个类Child,它继承于Father
	

    public void fun() {
        /**
         * 在同一个包中的子类,可以访问超类中 public 、protected 、默认 的 数据成员和方法
         * 
         * 不能访问私有的 数据成员和方法
         */
        int m = money;
        int f = friends;
        String p = pet;
        //int s = shoes;         //这条语句不能使用
                
    }

}


不在同一个包里:

public class OtherChild extends Father{          //定义一个类OtherChild,它继承于Father
	
    public void fun() {
        /**
         * 不在同一个包中的子类,可以访问超类中 public protected  数据成员和方法
         * 
         * 不能访问默认的和 private 数据成员和方法
         * 
         */
 
        int m = money;
        int f = friends;
        //String p = pet;       
        //int s = shoes;
        fun();
    }
}

总结:通过以上的例子,我们发现,子类继承父类,在同一个包里只有private不能使用,不在同一个包里的,只有            public 、protected可以使用。 

(3)关于抽象类的继承:
     
    抽象类:是由abstract关键字实现的,格式为      修饰符  abstract class 类名.
    注:抽象类中至少有一个抽象方法。抽象类不能创建对象,它的方法只能由子类完成,子类如果不是抽象类,它 至少要有一个方法实现抽象方法,修饰符不能比父类更严格,类型、方法名以及有无参数要与父类相同,抛出的异常也不能比父类多。

例:public abstract class Animal {                //定义一个抽象类
    
    	public abstract void eat();              //定义一个抽象方法

    	public void fun() {                        //定义一个方法
    	
      	}
       }
-------------------------
public class Monkey extends Animal {

     public void eat() {                  //通过此方法,实现抽象方法
     System.out.println(" 猴子正在吃   吃的是苹果");

    }

}

(4)方法重写:当父类和子类有相同的方法,可以串改方法,叫方法重写。

例:public  class  JiCheng1 {                  //定义一个类,它有四个实例变量,分别有四种类型,有一个方法method()
	
	public int a=1;
	protected int b=2;
	int c=3;
	private int d=4;
	
	public void say()
	{
		System.out.println("aaaaaaaa");
	}
	
	public void method ()
	{
		System.out.println("主类中的方法");
	}

}
-------------------------
public class JiCheng2 extends JiCheng1{            //定义一个类JiCheng2,继承父类JiCheng1
	
	public void fun()                    //在子类中可以跟据需要定义父类中所没有的方法
	{
		int i=a+b+c;         //将a,b,c的和赋给i
		//int k=d;
		System.out.println(i);
	}

	public void method()           //定义一个方法,与父类中方法的相同,输出的内容不同
	{
		System.out.println("子类中JiCheng2的方法");
	}
}

-------------------------

public class Test {                              //定义一个测试类

	public static void main(String[] args) {           //程序入口
		
		JiCheng1 cc=new JiCheng2();
		cc.say();

		JiCheng1 aa=new JiCheng1();       //创建一个父类的对象
		aa.method();                               //调用父类中的方法
		
		JiCheng2 bb=new JiCheng2();     //创建一个子类的对象
		bb.method();                               //调用子类中的方法
		
		//以下两条语句实现的功能是方法重写
		aa=bb;         //将父类指向子类                                       
		aa.method();   //实际上调用的是子类的方法
	}
}

总结:子类只能有一个父类,父类有多个子类,子类可以定义父类中没有的,子类可以代替父类,父类可以指向子类,子类可以访问父类中的。继承可以使程序更灵活。



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -