再看Java类的继承和多态

继承是Java面向对象的一种表现。利用继承可以创建公共属性的父类,然后根据各个子类的不同特性创建各个不同属性。

注意事项:

子类只继承父类的属性和方法,并根据自身需要设定自己新的属性和方法,经过继承的类是子类,被继承的类是父类,【Java 不支持多继承,即只有一个父类】

举个栗子:

爸爸只有一个,孩子却有很多,孩子只能从一个父亲那里继承家业,但一个父亲可以有多个孩子。

object 类及其方法

Java中所有的类都默认继承object类,换言之,object是Java所有类的父类 该类定义如下:

public class object

Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入。Object类没有定义属性,一共有13个方法,具体的类定义结构如下图:

1对象中的克隆

1.克隆的限制

1.1:被克隆的类必须自己实现cloneable的接口,用来指示object.clone()方法可以合法的对该类实例进行按字段复制。 cloneable接口实际上是一个标识性接口,没有任何接口方法。

1.2:实现cloneable接口的类应该使用公共方法重写object.clone 某个对象实现了此接口就clone它是不可能的

1.3:在Java.lang.object类中clone方法是这么定义的【

protected object clone()

throws CloneNotSupportedException

】创建并返回此对象的一个副本

2.克隆层次

1.浅层克隆:主要复制基本对象的值

2.深层克隆:当类存在聚合关系时候,克隆就必须考虑聚合对象的克隆。可以复制引用类型的字段

3.Java的继承

公式如下:

class 子类 extends 父类{}

1.子类共享父类中的非私有属性

2.子类共享父类中的非私有方法

4. super 关键字

1.使用super关键字调用父类属性 语法如下:

super . 父类属性

public class Father {
 public String v="Father";
 public String x="输出了Father类的public成员变量x!!!";
 
 public Father() {
  System.out.println("Father构造方法被调用!");
 }
 
 public Father(String v){
  this.v="Father类的带参数构造方法!运行了.";
 }
 public void outinfo(){
  System.out.println("Father的outinfo方法被调用");
 } 

 public static void main(String[] args) {
  // TODO 自动生成方法存根
 }
}

package org.test;

public class Son extends Father{

 public String v="Son";
 
 public Son() {
  super();      //调用超类的构造方法,只能放到第一行.
  System.out.println("Son无参数构造方法被调用!");
  //super();      //错误的,必须放到构造方法体的最前面.
 } 
 
 public Son(String str){
  super(str);
  System.out.println("Son带参数构造方法被调用!");
 }
 //覆盖了超类成员方法outinfo()
  public void outinfo(){ 
  System.out.println("Son的outinfo()方法被调用");
 } 
 
   public void test(){
  
  String v="哈哈哈哈!";   //局部变量v覆盖了成员变量v和超类变量v
  
  System.out.println("------1-----");
  System.out.println(v);   //输出局部变量v
  System.out.println(this.v);  //输出(子类)成员变量v
  System.out.println(super.v); //输出超类成员变量v 
  
  System.out.println("------2-----");
  System.out.println(x);   //输出超类成员变量v,子类继承而来
  System.out.println(super.x); //输出超类成员变量v
  
  System.out.println("------3-----");
  outinfo();   //调用子类的outinfo()方法
  this.outinfo();  //调用子类的outinfo()方法
  super.outinfo(); //调用父类的outinfo()方法
 } 
 
 public static void main(String[] args) {
  new Son().test();
  
 }
}

2。使用super调用父类构造方法

如果使用super()则是调用父类无参数构造方法,使用super(参数)则是调用父类的有参数构造方法。

3.子类父类构造方法的执行顺序

3.1 子类的构造方法会默认调用父类的无参数构造方法。

3.2如果子类只提供有参数的构造方法,则必须在子类的构造方法中调用调用父类的构造方法

3.3 执行完父类的构造方法后,在调用本类的构造方法。

5.多态变化

Java中多态实现

Java多态的体现具体表现在方法的重载和覆盖上,

方法重载就是有多个方法名相同,类型不同【参数个数,类型上不同】

覆盖就是指子类重写了父类中的方法


 注意事项:子类重写父类中的方法,即子类中的方法和父类中的方法保持一致,但是,方法的修饰符一定要大于等于父类中方法的修饰符。

6.static 关键字

6.1 静态变量:普通变量加上static关键字便是静态变量

6.2 静态方法:普通方法加上static关键字便是静态方法

7.final属性

   final是最终的意思,使用final修饰一个类,表示这个类是不能被继承的,修饰的方法是不能被重写的,final修饰变量,代表该变量是常量。 并且不能被修改

8  .  abstract 关键字

使用abstract 修饰的类是抽象类,抽象类中既有抽象方法,也有具体方法,只有方法头没有方法体。抽象类必须由其子类继承,才能实例化对象


抽象类 比如人类,女朋友,这都是抽象类

抽象类定义: public【访问权限】 abstract class test{}

抽象方法:public abstract double area();

抽象类不仅有抽象方法,还有具体可以实现方法,

public void say(){

System.out.println("我是具体的实现方法");

}







最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,253评论 0 16
  • 电在我们的日常生活中应用极为广泛,它极大的方便了我们的生活和工作,但如果用电不当却会给人带来可怕的后果。 ...
    大小陈文集阅读 170评论 0 2
  • 前言:我们知道在app中打开Safari来显示网页的代码UIApplication.shared.open(url...
    Bryant_2423阅读 1,725评论 0 7
  • 今天,写作群组长私信我,告诉我这个月已经缺交4篇文章了,按照群规是需要被强行踢出群的。但还是不忍心,希望我能补交。...
    木棉宝贝阅读 312评论 0 0