day02(继承,重写,this,super,final,抽象类)

继承

  概述:日常生活中儿女总会继承长辈的遗产,java语言也是。通过继承多种实物之间形成一种关系。

  特点:

    ①一个类只能继承一个父类

    ②一个父类可以有多个子类

    ③可以多层继承(a类继承b类   C类继承a类)

成员变量特点:(就近原则)

        ①.如果子类没有需要的成员变量,子类可以使用父类的成员变量。

        ②.如果父类的成员变量私有,子类不能访问到。

  成员方法特点:(就近原则)

①如果子类没有需要的成员方法,子类可以使用父类的成员方法。

②.如果父类的成员方法和成员变量私有,子类不能访问到。

  构造方法的执行顺序:

        

/*
 * 继承中构造方法的执行顺序
 * 			在子父类中,创建子类对象,调用子类的构造方法,
 * 			在子类的构造方法的第一行代码如果没有调用父类的构造或者没有调用子类的其他构造,则默认调用父类无参构造
 * 为什么要调用父类构造?
 * 			因为需要给父类的成员变量初始化
 * 肯定会先把父类的构造执行完毕,在去执行子类构造中的其他代码
 *
 * 我是父类无参构造 --- 我是子类有参构造 --- 我是子类无参构造
 */
public class ExtendsDemo6 {
	public static void main(String[] args) {
		//Die d = new Die();
		Zi z = new Zi();
	}
}

class Die{
	public Die() {
		System.out.println("我是父类无参构造");
	}

	public Die(int num) {
		System.out.println("我是父类有参构造");
	}
}

class Zi extends Di {
	public Zi() {
		//super(1);
		//super();

		this(1);//不会再调用父类的无参构造了

		System.out.println("我是子类无参构造");
	}

	public Zi(int num) {
		//会默认调用父类无参构造
		System.out.println("我是子类有参构造");
	}
}	

重写

意义:因为父类的方法不能够满足子类的需求时,这时需要重写来达到需求。

注意事项:①.父类的方法不能私有

     ②不能被final修饰

     ③建议使用注解(@Override)来规范重写(方法名、返回值类型、参数列表完全相同)

 和重载的区别:

重载的意义:相似的功能我们需要用相同的方法名来调用来提高代码的健壮性

      方法名相同,参数列表不同(参数类型,参数个数,参数顺序满足至少一个),与返回值无关

this

  意义:表示当前类的对象引用

  作用:调用当前类的成员方法、成员变量、构造方法(this())。

super

意义:表示父类的对象引用

    作用:调用父类的成员方法、成员变量、构造方法(this())。

final

抽象类

时间: 2024-10-10 07:01:32

day02(继承,重写,this,super,final,抽象类)的相关文章

java学习--基础知识进阶第二天--继承、匿名对象&final、抽象类

今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 1.2 继承的格式&使用  在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 1.2.1 案例代码一: package com.itheima_01; /* * 继承:多个类有共同的成员变量和成员方法,抽取到另外一个类

Java基础学习191221(可变参数,数组,Array类,稀疏数组,继承重写多态,抽象类,接口)

Java基础学习 可变参数 在方法声明中,在指定参数类型后加一个省略号(...). 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通参数都必须在它之前声明. public class printMax { public static void main(String[] args) { printMax(1,5,8,78,415,15); } public static void printMax( double... numbers){ if (numbers.length

07.28 关键字 继承 重写 知识点梳理

static关键字被static修饰的成员变量和成员方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享. 当创建对象后,成员变量是存储在堆中的,而static成员变量和类的信息一起存储在方法区, 而不是在堆中.static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问访问方式: 类名.类变量 或者 实例名.类变量double c = Math.sqrt(3.0 * 3.0 + 4.0 * 4.0); super关键字super必须是子类构造方法的第一

java中static,super,final关键字辨析

1:static关键字 利:1)对对象的共享数据提供单独的空间存储. 2)修饰的方法可以直接被类名调用 弊:1)生命周期长. 2)访问出现限制(只能访问静态) 它可以有静态方法,静态类,静态变量 2:super关键字 1)使用super关键字调用父类的成员变量和成员方法. 格式1:super.成员变量 格式2:super.成员方法([参数1,参数2...]) 2)使用super关键字调用父类的构造方法 格式1:super([参数1,参数2...]) 总结:this代表当前对象(可以输出或地址).

2.23 Java基础总结 ①toString方法②equals③this和super④final⑤常量

①toString方法②equals③this和super④final⑤常量一.toString方法Object的toString方法返回该方法的字符串描述,一般都会重写,String的toString就是重写了的这里可以输出想要的信息,方便调试等二.equals方法== 判断的是引用 Object的equals方法比较的是对象里边的内容 三.this和superthis()调用本类的其他构造,只能写在构造方法的第一句 this.属性或行为当前对象的属性或行为 super()调用父类中只等的构造

抽象&继承&重写

抽象&继承&重写 定义父类 abstract class Car{ //是抽象类,不能直接被实例化 val carBrand: String //字段没有初始化值,就是一个抽象字段 def info() //抽象方法,不需要使用abstract关键字 def greeting() {println("Welcome to my car!")} } 子类实现 class BMWCar extends Car { //重写父类字段,需要使用override关键字 overr

JAVA构造方法,继承关系和SUPER关键字

SUPER可调用父类的构造方法,但要注意默认调用和参数调用. 同时,在继承类时,可以用SUPER调用其它非构造方法哟. class Test extends Object{ public Test(){ System.out.println("Test1 First thing"); } public Test(String welcome){ System.out.println("Test1 " + welcome); } protected void doSo

继承中的super解疑

package Test; public class TestExtends { public static void main(String[] args) { PersonB b = new PersonB(); System.out.println("============="+b.getName()); //PersonA a = new PersonA(); PersonA a = new PersonA("aaa"); //b.getName2(&qu

java面向对象,final,super ,抽象类,重写,代码块,static,this,构造方法,堆栈

在jvm内存中主要分布有以下三个区域: 栈:存放基础数据和自定义对象的引用 堆:主要存储创建的对象,即new出来的对象 方法区:加载存放class文件(字节码文件) 什么是封装? 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装的优点: 隐藏代码的实现细节,提高安全性. private 私有属性:(调用属性先执行提供的get或set方法) 私有属性: class Person { //姓名 private String name; //年龄 private int age; //