JAVA- 继承

0.特性、与C++部分区别:

  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
  • Java有个最高层的类 Object。Java中的每一个类都直接或间接继承于Object。

1.子类继承父类的哪些?

误区:

  • 父类私有的东西,子类无法继承;
  • 父类非私有,子类全部继承。

此处“非私有”包括public和protected

  • 从父类继承的private成员变量,(虽然继承下来了),不能直接使用。可以通过相关方法操作。
  • 只有父类的虚方法才可以被继承。

不在虚方法表中的方法

  • private 修饰的方法:由于无法被子类重写,因此不会存储在虚方法表中。
  • static 修饰的方法:静态方法束缚于类本身,不会被重写。
  • final 修饰的方法:无法在子类中被重写,因而不在虚方法表中。

2.关键字:extend

在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。

public class Animal { 
    private String name;   
    private int id; 
    public Animal(String myName, int myid) { 
        //初始化属性值
    } 
    public void eat() {  //吃东西方法的具体实现  } 
    public void sleep() { //睡觉方法的具体实现  } 
} 
 
public class Penguin  extends  Animal{ 
}

3.super 与 this 关键字:

用于解决子类父类重名(或被重写)成员的访问。

  • super 关键字:我们可以通过 super 关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this 关键字:指向自己的引用,引用当前对象,即它所在的方法或构造函数所属的对象实例。

4.方法的重写:@Override

当父类的方法不能满足子类的需求,需要进行方法重写。

书写时需要注解:@Override

重写要求:

  1. 重写方法的名称、形参列表必须与父类一致;
  2. 重写时,访问权限子类必须大于等于父类(public>protected>空着不写)
  3. 只有在虚方法表里的方法才能被重写

注意与重载区别。

4.final关键字

final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

final 含义为 “最终的”。

使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇