继承和构造函数笔记

package com.box;

public class Box {
	double width;
	double height;
	double depth;
	//封装类成员变量
    Box(Box ob){
		width=ob.width;
		height=ob.height;
		depth=ob.depth;
		System.out.println("我是传递一个对象的构造函数");
    }
    Box(double w,double h,double d){
    	width=w;
    	height=h;
    	depth=d;
    	System.out.println("我是有三个参数的构造函数");
    }
    Box(){
    	width=-1;
    	height=-1;
    	depth=-1;
    	System.out.println("admin我是无参数的构造函数");
    }
    Box(double len){
    	width=height=depth=len;
    	System.out.println("我是double len构造函数");
    }
    double volume() {
    	return width*height*depth;
    }
}
package com.box;

public class BoxWeight extends Box {
	double weight;
	BoxWeight(double w,double h,double d,double m){
		width=w;
		height=h;
		depth=d;
		weight=m;
		System.out.println("我是子类");
	}
	double vol(double len) {
		return volume();
	}
}
package com.box;

public class ExetendsTest {
	public static void main(String[] args) {
		
		BoxWeight mybox1=new BoxWeight(10, 20, 15, 34.3);
		BoxWeight mybox2=new BoxWeight(2,3,4,0.076);
		System.out.println(mybox2.vol(10));
		double vol;
		vol=mybox1.volume();
		System.out.println();
		System.out.println("Volume of mybox1 is"+vol);
		System.out.println("weight of mybox1 is"+mybox1.weight);
		System.out.println();
	}
}

继承:1、一个类可以是多个类的超类,反过来说一个子类有多个超类是错误的。
           2、子类拥有超类所有的特性
           3、超类的修饰符不能为private,这样子继承它的子类是无法访问的
构造函数:1、构造函数是一个类被实例化对象过程中的初始器,做用是为类分配空间,创建对象,对象初始化
                  2、如果没有显示的指定构造函数,在类创建一个实例化对象是,系统会自动调用默认的构造函数
                 3、构造函数中的重载(也属于构造函数),其中多个参数的构造函数在被实例化程序执行的顺序和原理同默认构造函数 一样
                  4、一旦显示的创建了构造函数,就不会有默认的构造函数


http://www.niftyadmin.cn/n/864449.html

相关文章

【Java】静态和非静态的区别

还是老生常谈JVM内存模型的问题,也是我一直深究(浅显)的问题,这里我们单一说一下用静态修饰的内存,前面的篇章有具体讲过jvm内存分为:方法区、堆、栈、程序计数器 但是目前我们只要认识的是方法区, 堆和栈 方法区:是各个线程共享的…

【Java】静态的特点以及注意事项?

上一篇文章我们讲了静态和非静态的区别,这里我们对静态做个补充 1、静态在程序编译一次后,其值就会一直存放在方法区中,直至线程结束。并且每次调用对象的时候,直接可以通过类名的加点的方式引出,而不必开辟新的内存空间&#xff…

【Java】之继承总结

1.静态和非静态的区别。说一下内存。 静态:用static修饰的成员变量,被所有实例化的对象共享其值; 内存: 静态成员变量存放的地址在方法区的常量池中,其中方法区、堆的值会被共享,其生命周期随着类的加载…

Java编译期和运行期

原文转至:https://blog.csdn.net/qq_26225663/article/details/79593264 编译期: 是指把源码交给编译器编译成计算机可以执行的文件的过程.在Java中也就是把Java代码编成class文件的过程.编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只…

【Java】继承、接口、抽象类、多态之间的关系和区别 【一】

时间对于一个追梦的人来说就是黄金,没有什么能阻挡前行的脚步。--致所有和我一样追逐明天太阳的人接口的理解:接口是对动作的抽象说动作还不如说功能 抽象类理解:抽象类是对根源的抽象 多态的理解:类加载运行时父类的引用指向子…

【Java】继承、接口、抽象类、多态之间的关系和区别 【二】

多态:运行时引用指向子元素的实例对象【jvm内存模型很重要,也是入门的基础】 接着上面继续理解,创建一个老师类 package com.physical;public class Teacher extends Person{String profession;int teacherid;//一个无参的构造器Teacher()…

【Java】重写、集合笔记随笔

现在看来数组和集合的区别有两点: 1、数组只能存放一个类型的数据,且长度固定,如果需要动态扩容就需要重新声明数组 2、集合存放的数据可以不是一个类型,同时数据长度是动态的 浅谈理解重写toString、equals、hashCode方法所有类中…

什么是Servlet

1、Apache与Tomcat之间的关系 Apache和Tomcat两个都是免费的服务器,Apcahe只能处理静态页面,Tomcat无论是静态网页还是动态网页都能适应。但是Apache在处理静态页面比Tomcat快的多,一般情况下我们都会将Apache与Tomcat联合使用,将…