抽象&继承&重写

抽象&继承&重写

  • 定义父类
abstract class Car{   //是抽象类,不能直接被实例化
   val carBrand: String //字段没有初始化值,就是一个抽象字段
     def info() //抽象方法,不需要使用abstract关键字
     def greeting() {println("Welcome to my car!")}
}
  • 子类实现
class BMWCar extends Car {
    //重写父类字段,需要使用override关键字
    override val carBrand = "BMW"   // 只能重载val字段,var本身就可变
    //重写超类的抽象方法时,不需要使用override关键字
    def info() {printf("This is a %s car. It is on sale", carBrand)}
    //重写超类的非抽象方法,必须使用override关键字
    override def greeting() {println("Welcome to my BMW car!")}
}

原文地址:https://www.cnblogs.com/JZTX123/p/10612055.html

时间: 2024-11-10 05:38:27

抽象&继承&重写的相关文章

Java第八章 之 继承、抽象、重写

1 /** 2 3 继承:子类继承父类的属性和方法 4 5 */ 6 7 //定义一个父类 8 9 public class Fu{ 10 11 String name; 12 13 int age; 14 15 public void work(){ 16 17 System.out.println("在工作"); 18 19 } 20 21 } 22 23 //定义一个子类 24 25 public class Zi extends Fu{ 26 27 /**重写父类的方法 28

07.28 关键字 继承 重写 知识点梳理

static关键字被static修饰的成员变量和成员方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享. 当创建对象后,成员变量是存储在堆中的,而static成员变量和类的信息一起存储在方法区, 而不是在堆中.static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问访问方式: 类名.类变量 或者 实例名.类变量double c = Math.sqrt(3.0 * 3.0 + 4.0 * 4.0); super关键字super必须是子类构造方法的第一

多态&抽象&继承

多态 package cn.itcast.extend; public class ExtendDemo2 { public static void main(String[] args) { A a=new B();//多条 System.out.println(a.num); a.show();//非静态 a.say();//静态方法 } } class A{ int num=10; //静态方法 public static void say(){ System.out.println("父

Python中类的声明,使用,属性,实例属性,计算属性及继承,重写

Python中的类的定义以及使用: 类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 (当没有实体时 使用pass代替) 下面定义一个鸟类; class flyBord: """鸟类""" pass #这里我们并没有实体所以我们使用pass代替 这就是一个类的最基本的定义 类中的__init__函数:类似于java中的构造函数,以及类

Java自学-接口与继承 重写

Java 重写方法 子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 Override 步骤 1 : 父类Item 父类Item有一个方法,叫做effect package property; public class Item { String name; int price; public void buy(){ System.out.println("购买"); } public void effect() { System.out.println

Java基础学习191221(可变参数,数组,Array类,稀疏数组,继承重写多态,抽象类,接口)

Java基础学习 可变参数 在方法声明中,在指定参数类型后加一个省略号(...). 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通参数都必须在它之前声明. public class printMax { public static void main(String[] args) { printMax(1,5,8,78,415,15); } public static void printMax( double... numbers){ if (numbers.length

继承重写NetworkLobbyPlayer之后无法创建GamePlayer的解决办法

在继承的NetworkLobbyPlayer的类里添加如下代码         void Awake() {             DontDestroyOnLoad(transform.gameObject);         } NetworkLobbyPlayer默认是不会在Loading时销毁的,官方给的例子当中的LobbyPlayer是LobbyManager的子对象也不会被销毁,所以当自己写一个LobbyPlayer的时候,如果没有加上这个代码,LobbyPlayer在loadin

Java基础笔记-抽象,继承,多态

抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstract修饰,在抽象类中的方法不写abstract也默认的是抽象方法. 3.不能用new来创建对象,调用抽象方法没意义. 4.抽象类中的方法被使用,必须由子类覆写其所有的抽象方法后,才能建立子类对象进行调用. 如果子类只覆盖了部分的抽象方法.那么该子类还是一个抽象类. 5.抽象类不可以被实例化. 继承

面向对象:继承、抽象类、抽象方法、虚方法

1.继承什么是继承?目的:代码重用public class 子类:父类{ }父类 基类 被继承的类子类 派生类 需要继承的类 父类构造函数的继承创建子类对象时,先调用父类构造函数,再调用子类构造函数默认调用父类无参构造函数如果子类有无参构造函数,要求父类也有无参构造函数如果调用父类的有参构造函数,显式用base调用 public 子类(参数列表)base(实参)实参:要调用的父类的有参构造函数的参数列表{} base:父类对象(父类实例) 2.抽象abstract 抽象方法:访问修饰符 abst