为了账号安全,请及时绑定邮箱和手机立即绑定

父子类之间常见的问题

标签:
Java

1 多态

父类类型 x = new 子类类型();
比如:
Thread x = new MyThread();

x.start();//子类属性不能访问到,父子类之间的属性 没有重写关系

方法
比如 class MyThread extends Thread{}
其中MyThread是子类 Thread是父类

a,父类特有的可以访问(Thread)
b,子类中重写的方法可以访问(MyThread)
c,子类中特有的不能访问(MyThread)

为了更好的加深理解,下面写出一段代码关于父子类代码之间的分析:

package com.free;

public class Test1 {       
    public static void main(String[] args) {  //main方法为入口       
         Animal x = new Tiger(); //创造一个Tiger类对象并赋值给 x 
         System.out.println
            ("(1)x.news is " + x.news);//调用到父类Animal中的new方法

         System.out.println
            ("(2)((Tiger)x).news is " //调用到父类Animal中的Tiger 里面的new方法
                + ((Tiger)x).news);
         System.out.println//调用到父类Animal中的smile方法
            ("(3)x.smile() is " + x.smile());     
         System.out.println//调用到父类Animal中的Tiger 里面的smile方法
            ("(4)((Tiger)x).smile() is " + 
                    ((Tiger)x).smile());//tiger 里面的smile方法
         System.out.println
            ("(5)x.getNews() is " + 
                    x.getNews());     
         System.out.println
            ("(6)x.getMessage() is " + 
                    x.getMessage());     
     }  
}    
class Animal {    
       public String news = 
               "Animal's news";      
       public String message = 
               "Animal's message";        
       public static String smile() {         
         return "smile from Animal";     
       }         
       public String getNews() {        
         return news;    
       }         
       public String getMessage(){ //这个父类的方法没有被重写
         return this.message;  //调用本父类Animal中的message方法
       }   
}    
class Tiger extends Animal {    

       public String news = //子类中特有的定义属性
               "Tiger's news";   
       public String message = 
                  "Tiger's message";   
       public static String smile() {       
         return "smile from Tiger";       
       }          
       public String getNews() { //继承父类,但是父类中的那个方法没有被重写,所以也会把父类的那个也继承下 
             return this.news;     //调用Tiger这个子类的getNews的方法   
       }  
}

以下为输出的结果:

(1)x.news is Animal's news
(2)((Tiger)x).news is Tiger's news
(3)x.smile() is smile from Animal
(4)((Tiger)x).smile() is smile from Tiger
(5)x.getNews() is Tiger's news
(6)x.getMessage() is Animal's message

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消