Java的学习之路Day06

                                    Day06

      一、需求    

            -创建一个猫类和一个狗类,分别创建一个对象

            

class Cat {
	String name;
	int age;

	public Cat() {

	}

	public Cat(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public void eat() {
		System.out.println("吃骨头");
	}

	public void action() {
		System.out.println("抓老鼠");
	}
}

class Dog {
	String name;
	int age;

public Dog() {
		
	}

	public Dog(String name,int age) {
		this.name=name;
		this.age = age;
	}

	public void eat() {
		System.out.println("吃猫头");
	}

	public void action() {
		System.out.println("抓猫");
	}
}

     二、继承

            1、继承的语法

             -如果想要一个类去继承另外一个类 ,只需要使用extends关键字即可

             -如果一个类没有使用extends关键字,那么这个类会默认继承 object类

             -object类是所有类的直接或间接父类

             备注:java中支持类的单继承,其中父类可以有多个子类,但是子类只能有一个父类,子类可以继承父类的成员变量和成员方法,但构造方法不能继承。

           2、继承的用处

            -继承可以将重复的代码统一编写,减少代码的冗余

            -可以使用面向父类通用,让我们的程序更加通用

          实例:

           

package javaSEDay09;

public class Animal {
	String name;
	int age;
	
	public Animal() {
		super();
		
	}
	public Animal(String name, int age) {
		
		this.name = name;
		this.age = age;
	}
	public static void eat() {
		System.out.println("吔屎啦你");
	}
      
}

    这个是父类,然后用子类去继承父类

    

package javaSEDay09;

public class Action extends Animal{	
	
	public Action() {
		super();		
	}
	
	public Action(String name, int age) {
		super(name, age);		
	}
	
	public static void main(String[] args) {
		Animal cat=new  Animal();
       eat();
	}	
}

         三、方法的重写(方法的覆盖)

           -当我们的子类继承一个父类 ,父类提供的方法不适合我们使用,我们可以重写的方式来覆盖父类原有的方法  

           -语法:

            1-方法的重写只会发生在父子类的关系。

            2-类在执行方法的时候,肯定会执行重写后的方法

           3-重写后的方法参数要与重写前的方法参数保持一致

              -返回值的基本类型

                -基本数据类型

                  -子类要和父类的返回值类型保持一致

                -引用数据类型

                   -子类的返回值类型不能大于父类的返回值类型 

         四、父类的引用指向子类的对象(向上造型)

                在实际开发中,为了程序比较通用,我们一般会面向父类进行编程。

                 比如代码可以这么写:

                 Dog dog=new Dog();

                  Animal dog=new Dog();

                  实例

                父类:

package com.auto.jintian;

public class Car {
     public int pealAuto=2;
     public int pealHand=3;
     public void stepOnGas() {
    	 System.out.println("油门踏板");
     }
     public void stepOffGas() {
    	 System.out.println("刹车踏板");
     }
}

                子类重写父类:

          

package com.auto.jintian;

public class autoCar extends Car {
	 public void stepOnGas() {
    	 System.out.println("右脚油门踏板");//重写父类的方法
     }
     public void stepOffGas() {
    	 System.out.println("左脚刹车踏板");
     }
}

      五、java程序的编译期和运行期

            在我们使用向上造型的时候,java程序就存在编译期和运行期:(编译期看类型,运行期看对象)

      六、类型的强转

             不管是基本数据类型还是引用数据类型,强转都会存在风险,尽量避免,如果实在无法避免,最好在强转的时候加上一个判断,这就需要使用instanceof关键字。使用instanceof关键字的表达式返回值为布尔值。如果返回值为true。说明对象引用是类的实例,如果是false则引用对象不是类的实例,具体格式如下:

               myobject(某个类的对象引用)   instanceof(关键字)   exampleClass(某个类)

            实例:

           父类:

package javaSEDay11;

public class Person01 {
      String name;
      int age;
      public void civilService() {
    	  System.out.println("公务员处理日常事物");
      }
        
}
           子类:
package javaSEDay11;

public class Person02 extends Person01 {
	public void civilService() {
		super.civilService();
		System.out.println("总统处理国家大事,纵览全局");
	}
}

            测试:

           

package javaSEDay11;

public class textPerson extends Person02 {
	public static void main(String[] args) {
		Person02 person = new Person02();
		person.name="总统";
		person.age=55;
		if(person instanceof Person01 ) {
			person.civilService();
		}
	}
	
	
    
}

    七、super

        super可以再本类中调用其父类和构造器,

          - super(参数)根据参数的个数和类型调用父类相应的构造器

          - super.方法名   根据方法名调用父类的方法。

          -子类的构造器的第一行默认会有一个super();

          -this和super在调用构造器的时候不能共存。

      

      


                   

              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值