java学习 java 的继承机制 暑假第三天

来源:互联网 发布:爱知大学在日本排名 编辑:程序博客网 时间:2024/04/29 18:22

final 定义的常量 能在构造函数中初始化 

常量我们一般设置为静态的 让所有对象共享这个变量节省内存空间    

如果常量是静态的那么 我们再定义的时候就要初始化  因为 静态的常量我们没有初始化赋值 我们要这样

 

static  final  double PI=3.141592653

 

 

java中的继承机制用 exteds标识  ...       java中不允许多重继承   

方法的重载发生在一个类 方法的覆盖发生在 基类与子类

java提供了一种访问被覆盖的父类方法的一种机制  super  表示父类 我们可以访问父类被覆盖的方法

每个子类的构造函数 第一句隐含调用了 supper()构造父类   如果父类没有  无参数的构造函数 那么在子类编译的时候就可能报错 我们应该 在子类的构造函数

第一行  supper(参数 )

  构造方法不能被继承    C++  java都一样

 

 

 

Fish从Animal继承而来

Animal an;

Fish  b=new Fish();

an=b;  //我们再调用函数的时候 调用的是Fish类的方法  因为我们是吧Fish类的引用赋值给了  Animal对象 这根C++ 基类的指针可指向子类 原理一样  

 

多态性在C++中是父类的指针可以指向子类   根据子类的不同调用不同的方法 

java中就是 吧不同子类 对象引用赋给  基类对象        传递谁的引用我们就调用谁的方法     如果子类有调用子类 子类没有调用父类  

 

java的一个运算符         instanceof         判断对象是否是类的一个实例     子类对象是父类的一个事例  子类也是本身的一个实例 

 

例如 Animal  An ;

      if(An  instanceof  Animal)

{

.......   判断对象是否是类的一个实例

 

}

例子 :

class Animal
{
 int height ,weight;
 void  breath()
 {
  System.out.println("breath");
 }
 void eat()
 {
  System.out.println("eat");
 }
 

}
class Fish extends  Animal
{
 
}

class Integration    //要执行的类是包含 main函数的类   不是非要加public   
{
 public static  void main(String []args) //参数一定要加
 {
  Animal x=new Animal();
  Fish  y=new Fish();
  x.eat();
  y.eat();
  x.breath();
  y.breath();
  
 }

}

 

 

 

面向对象求面积:

class Function
{
 float width,height;
 Function(float x,float y)
 {
  this.width=x;
  this.height=y;
 }
 
 float  area()
 {
  return (width*height);
 }

 
  void show()
  {
   System.out.println("area is" + area());
  } 
}

public class Rectangle
{
 
 public static void main(String []args)
 {
     Function p=new Function(3,3);
     p.show();
     
}

 

}

 


 

 

 

 

 

 

原创粉丝点击