java4android十八集到20集。。记录

18集  继承初步.

1.什么是继承.
2.
为什么要使用继承.
3.
继承的基本语法特点.

在面向对象的世界当中,继承就是一个类得到了另外一个类当中的成员变量和成员方法.

java
当中只支持单继承,不允许多继承.
一个子类只能继承一个父类!!
但在C++里面一个子类可以有多个父类.

关键字extends.扩展.

面对对象的终极目标是减少应该程序的重复代码.
其实继承一方面就是为了减少重复的代码.

class Person{  	    
		String name;  	   
		int age;  
	      
	  void eat(){  
	        System.out.println("吃饭");  
	        }  
	          
	    void introduce(){  
	        System.out.println("我的名字是" + name + "年龄" + age);  
	    }  
	}  

	class Student extends Person{  
	    int grade;  
      
      void study(){  
	        System.out.println("学习");  
	          
	    }  
	}  

	class TestStu{  
	    public static void main(String args[])  
	    {  
	        Student student = new Student();  
	        student.name = " 张三 ";  
	        student.age  = 15;  
          
	        student.grade = 3;  
	          
        student.eat();  
        student.introduce();  
        student.study();  
	    }  
	}  



总结 :
1.使用继承是为了减少重复代码.

2.继承的基本语法.带有点扩展的意思在里面.


19集       子类实例化过程.


 
本集主要内容.
  1.
生成子类的过程.
  2.
使用super调用父类构造函数的方法.
 
 
由于子类继承了父类的成员变量,无法继承父类的构造函数 所以,在为成员变量赋值的时候有可能会出现重复代码,
 
为了解决这个问题,子类以使用super调用父类的构造函数,

class Person19{  
      String name;  
	    int age;  
	    Person19(){ 	              
	        System.out.println("Person的无参数构造函数");  
	    }  
	    Person19(String name,int age){  
	        this.name = name;  
        	this.age = age;  
	        System.out.println("Person的有参数构造函数");  
	    }  
	    void eat(){  
	        System.out.println("吃饭");  
        }  
	}  


	class Student19 extends Person19{  
	    int grade;  
    //在子类的构造函数当中,必须调用父类的构造函数,为什么?  减少重复代码
	    Student19(){  
	        super(); //调用父类的构造函数,如果用户没有写,编译器会自动添加.,在函数的第一句语句.  
	        System.out.println("Student 无参数构造函数");        
	    }  
	      
	    Student19(String name,int age,int grade){  
	       //this.name = name;  
        //this.age =age;  
        super(name,age);//调用父类的构造函数  
        this.grade =grade;  
    }  
	}  

	class Test19{  
	    public  static void main(String args[]){  
	        Student19 student  = new Student19("zhangsan",18,3);  
	        System.out.println(student.name);  //注意这的括号内的变量不给加引号
	        System.out.println(student.age);  
	        System.out.println(student.grade);  
	    }  
	}  


二十集

本集主要内容.
  1.
函数的复写(override).
   2.
使用super调用父类的成员函数.
   
 
复写与重载是不同的.
   
复写在两个类中,在父类与子类中.
   
重载在一个类中.


	class Person20{  
	    String name;  
   		int age;	      
	    void introduce(){  
	        System.out.println("我的名字"+ name+"年龄"+age);  
	    }  
	}
	//复写(override)也称之为覆盖或者重写  
	//1.在具有父子关系的两个类当中.  
	//2.父类和子类各有一个函数,这两个函数的定义(返回值 ,函数名和参数列表)完全相同  
	  
	class Student20 extends Person20{  
	    String address;  
	      
    void introduce(){  
        //anotherFun();  
        super.introduce();//调用父类的成员函数,减少重复代码,  
	        //System.out.println("我的姓名是"+name+"我的年龄是"+age);  
	        System.out.println("我的家在"+address);  
	    }  
	}  

	class Test20{  
	    public static void main(String args[]){  
	        Student20 s = new Student20();  
	        s.name = "张三";  
	        s.age  = 20;  
	        s.address = "深圳";     
	        s.introduce();  
	        Person20 p = new Person20();  
	                  
	        //p.name = "李四";  
          //p.age = 30;  
	        //p.introduce();  
	        //p.address = "广州";  
	    }  
	}  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值