继承、方法重写、代码块

33 篇文章 0 订阅
30 篇文章 0 订阅

继承

继承:子类继承父类的属性和行为
格式

class  父类{
}
class  子类  extend  父类 {
}

优点
1.提高复用性
2.便于维护
3.多态的前提
特点
1.支持单继承,多重继承(不同类继承同一个类)

//单继承
public  class A {
}
public class B extend  A{
}
//多重继承
public  class A {
}
public class B extend  A{
}
public class C extend  A{
}

2.不支持多继承

//java不支持
public  class A {
}
public class B {
}
public class C extend  A,B{
}

3.子类只能继承父类的非私有成员方法和成员变量
4.子类不能继承父类的构造方法,可以用super关键字去访问父类构造方法
super与this关键字
super:通过super关键字可实现对父类成员的访问,用来引用当前父类的对象
this:指向自己的引用,谁调用它就代表谁

class Animal {
  public void eat() {
    System.out.println("吃饭");
  }
}
 
class Dog extends Animal {
  public void eat() {
    System.out.println("小狗吃骨头");
  }
  public void eatTest() {
    this.eat();   // this 调用自己的方法
    super.eat();  // super 调用父类方法
  }
}
 
public class Test {
  public static void main(String[] args) {
    Animal a = new Animal();
    a.eat();
    Dog d = new Dog();
    d.eatTest();
  }
}

final关键字
1.声明类,则该类无法被继承
2.声明方法,则该方法不能被重写
3.声明变量,则该变量无法被修改,成为常量

方法重写

方法重写:子类对父类的方法实现过程进行重新编写,返回值和形参不变

//方法重写
class Animal{
   public void move(){
      System.out.println("动物可以移动");
   }
}
 
class Dog extends Animal{
   public void move(){
      System.out.println("狗可以跑和跳");
   }
}
 
public class TestDog{
   public static void main(String args[]){
      Animal a = new Animal();   // Animal 对象
      Animal b = new Dog();      // Dog 对象
 
      a.move();   // 执行 Animal 类的方法
 
      b.move();  //执行 Dog 类的方法
   }
}

特点
1.父类私有方法,即被private修饰的方法,无法被重写
2.重写后的访问权限,不能比父类中更低,最好一样
3.声明为final的方法无法被重写
4.构造方法不能被重写

代码块

代码块:用{ }括起来的代码叫代码块
分类:局部代码块、构造代码块、静态代码块、同步代码块
局部代码块
在方法中出现,缩短变量寿命,将变量定义在局部代码块中,可以及时结束其生命周期,释放空间
构造代码块
在类中方法外出现,在构造方法前执行,每次调用构造都执行
静态代码块
在类中方法外出现,用static修饰,给类进行初始化,在加载时执行,只执行一次

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值