Java 进阶P-4.4+P-4.5

子类和父类的关系

在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类。子类可以通过extends关键字来继承父类。做个比较通俗的比喻,就像一个父亲可以有多个亲孩子,但是一个孩子只能有一个亲生父亲。

 

1.继承以及重写:子类继承父类是对父类属性和方法的全面继承,同时子类在继承了父类的方法后,可对父类的方法进行重写。

public class Son extends Fat{
private int b;
private String h1;
public void sss() {
System.out.println("我要学好英语"); //在这我们对父类中的sss()方法进行了重写
}
public void iii() {
System.out.println("今天天气真好"); // 在这我们添加了子类特有的方法
}

}
class Fat{
public int a=5;
private String h;
public void sss() {
System.out.println("我要学好java");
}


}

2.父类用作对象的声明类型,构造器用子类的构造器(有点类似于接口和实现类的对象的关系)。这样使得我们的应用场景和范围更为灵活和广泛。我们知道一个父类可以有多个子类,这样我们可以在声明的时候用父类,在具体的构造器时,我们用子类。这时,这个新生成的对象是父类类型的对象,也就是说这个对象中目前只有父类的属性和方法(如果子类重写,则用子类重写的方法)。如果我们需要调用子类中特有的方法和属性,则我们需要将该对象强制转换成子类类型的对象。看下面代码

public class TestSon {
public static void main(String[] args) {
Fat s=new Son(); //我们在这进行了父类用作对象的声明类型,构造器用子类的构造器。
s.sss(); //我们调用了对象中的sss()方法,为我们重写过的方法
System.out.println(s.a); // 我们展示了父类中属性a的值,此处为public(没有进行封装)
Son y=(Son)s; //将s对象转化为Son类型的y对象
y.iii();; //这样我们可以通过y对象来调用子类中特有的iii()方法。
int u=y.b; //同时我们也可以接受子类中特有的属性b。

}

}

对这个知识点的理解和记忆中,我们可以用七个葫芦娃和葫芦娃爸爸(我假设的)来理解。假设葫芦娃爸爸只有吃饭这一个技能包,七个葫芦娃的技能点儿除了吃饭之外,分别还有比如喷火、喷火等技能包(每个人都不一样)。故我们可以在用某一个对象时,可以先以葫芦娃爸爸作为声明类型,然后呢用具体的葫芦娃进行构造。当我们在表达吃饭的动作(每个小葫芦娃都要吃饭啊~~~)时,我们就可以用当前对象名,吃饭(方法)来表示。但是当需要用喷火(方法),我们就需要将这个对象转化成葫芦四娃类型的了(因为这个是他和葫芦娃爸爸不一样的地方,四娃特有)。

3.Object类是所有类的父类,其中有方法equals等方法。

多态变量

子类和子类型

  • 类定义了类型
  • 子类定义了子类型
  • 子类的对象可以被当作父类的对象来使用
  • 赋值给父类的变量
  • 传递给需要父类对象的函数
  • 放进存放父类对象的容器里

Java的对象变量是多态的,他们能保存不止一种类型的对象

它们可以保存的是声明类型的对象,卓或声明类型的子类的对象

当把子类的对象赋给父类的变量的时候,就发生了向上造型

复制代码
public interface Fu{
   int num = 10;
   
   public class show(){
      System.out println(num);
  }
 //这种情况下可通过对象直接或间接访问成员变量。
 
public class zi implements Fu(){
@override
int num = 20;
public class show(){
      System.out println(num);
}
//如果子类或实现类有覆盖重写父类的方法,优先用子类。
}
复制代码

 

posted @   ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示