前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java易错知识点总结(三)

Java易错知识点总结(三)

作者头像
C_H
发布2022-11-15 14:51:33
2130
发布2022-11-15 14:51:33
举报
文章被收录于专栏:笔记c

目录

1.访问限制修饰符在不同位置时       对应的访问性和继承性

2.访问限制修饰符访问权限排序

3.成员变量的隐藏

4.方法重写(方法覆盖)

5.final关键字

6.super关键字

7.上转型对象



1.访问限制修饰符在不同位置时       对应的访问性和继承性

权限

访问性

继承性

类内部

同包类内部

不同包类内部

同包子类

不同包子类

public

protected

×

友好(friendly)

×

×

private

×

×

×

×

2.访问限制修饰符访问权限排序

由高到低:public--protected-友好的--private

3.成员变量的隐藏

如果声明的成员变量的名字和从父类继承来的成员变量的名字相同(声明的类型可以不同),子类就会隐藏继承的成员变量。

4.方法重写(方法覆盖)

子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。

方法重写的规则如下:

  • 1.只能重写继承父类的方法

重写方法体的内容

  • 2.final、static修饰的方法不能被重写
  • 3.父类中private修饰的方法不能被重写
  • 4.重写的方法不能使用限制等级更高的权限修饰符

被重写的方法

重写的方法

public

public

protected

public/protected

友好

public/protected/友好

  • 5.重写的方法必须有相同的参数列表
  • 6.重写的方法必须返回相同的类型

5.final关键字

  • final可以修饰类,方法,变量
  • final修饰的类不可以被继承(即final类不能有子类)
  • final修饰的方法不可以被覆盖(重写)
  • final修饰的变量是一个常量,只能被赋值一次

6.super关键字

super用法:

  • 当子类和父类出现同名成员时,可以用super进行区分
  • 子类调用父类构造函数时,可以使用super语句

  • 由于子类不继承父类的构造方法,因此,子类在其构造方法中需要使用super来调用父类的构造方法。
  • super必须是子类构造方法的第一条语句
  • 如果不写super语句,则默认super();

super和this用法相像之处:

this代表本类对象的引用 super代表父类的内存空间的标识

一个小问题:

在同一个构造函数中this()和super()能不能同时出现?   

(答案当然是不能的)

7.上转型对象

上转型对象的用法如下:

代码语言:javascript
复制
class A{
	void f(){
		System.out.println("A中f方法");
	}
}
class B extends A{
	void f(){
		System.out.println("B中f方法");
	}
}
public class Test{
	public static void main(String args[]){
		A xx=new B();	    xx是B对象的上转型对象
		xx.f();
	}
}

 子类的上转型对象只能调用重写的方法,不能调用子类新增的方法  把上转型对象强制转化为子类的对象 具体代码解释如下:  

代码语言:javascript
复制
class Animal{
	void f(String s){
		System.out.println("Animal中f方法"+s);
	}
}
class Cat extends Animal{
	void f(String s){
		System.out.println("Cat中f方法"+s);
	}
	void eat(){
		System.out.println("Cat中eat方法");
	}
}
public class Test{
	public static void main(String args[]){
		Animal xx=new Cat();	xx是Cat对象的上转型对象
		xx.f("上转型对象");
	    //	xx.eat();				
                                子类的上转型对象只能调用重写的方法,不能调用子类新增的方法
		Cat yy=(Cat)xx;			把上转型对象强制转化为子类的对象
		yy.f("子类的对象");
	}
}

输出结果为:
Cat中f方法上转型对象
Cat中f方法子类的对象
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1.访问限制修饰符在不同位置时       对应的访问性和继承性
  • 2.访问限制修饰符访问权限排序
  • 3.成员变量的隐藏
  • 4.方法重写(方法覆盖)
  • 方法重写的规则如下:
  • 5.final关键字
  • 6.super关键字
  • 7.上转型对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档